powershell - 只选择两位小数而不四舍五入
问题描述
我只想选择两位小数而不四舍五入。
$d = 123000.1264
'{0:f2}' -f $d
结果:123000,13
,但我需要结果123000,12
有什么想法可以解决这个问题吗?
先感谢您!
解决方案
[Math]::Truncate(123000.1264 * 100) / 100
可以。
123000.1264 * 100 = 12300012.64
[数学]::Truncate(12300012.64) = 12300012
12300012 / 100 = 123000.12
当您需要保持小数部分的准确性时,您应该对数字使用 [decimal] 类型,例如
$d = [decimal]123000.1264
然后 [Math]::Truncate 将使用其十进制重载来给出小数,而十进制除以整数(或双精度)将给出十进制结果。
当然,解释“向上”的方法不止一种:它可能意味着值增加 (3 > -5)或幅度增加 (|-5| > |3|)。如果您需要前者,请使用 [Math]::Floor (转换 -1.1 -> -2.0)而不是 [Math]::Truncate (转换 -1.1 -> 1.0)。
推荐阅读
- logic - 将英语句子翻译成谓语 wff
- docusignapi - Dfsle.APIException:信封中不存在收件人 1
- python - 使用 MetPy 和 xarray 的 ValueError
- python - torch.empty_like() 是否取决于输入值和输入大小?
- git - 使用 git 大文件的 github 私有存储库中的可见原始文件
- reactjs - reactjs-Axios 帖子返回空对象
- matlab - Matlab单元阵列协议问题
- css - slickR Package - 尝试同步 3 个轮播并更改文本颜色
- nestjs - NestJS 试图通过 url 打开文件夹内项目中的图像
- python - 在 Python 中使用 ctypes 时,为什么必须用大写字母调用 CDLL?