PowerShell如何将带小数点的数字转换为整数
PowerShell 将小数截断为整数的实现方案
你需要的是丢弃小数部分保留整数部分的转换,以下是不同场景的实现方式:
- 方案1:使用
[Math]::Truncate()方法(最推荐,通用所有场景)
该方法会直接丢弃数值的小数部分,不管小数部分大小都不会触发四舍五入,完全符合你要得到1024的需求。
示例代码:
$val = 1024.24 $intVal = [Math]::Truncate($val) # 执行后 $intVal 的值为 1024
如果处理负数,该方法也会正常保留整数部分,比如[Math]::Truncate(-1024.24)会得到-1024。
- 方案2:直接使用
[int]类型转换(仅适合小数部分永远小于0.5的场景)
PowerShell中[int]类型转换默认使用银行家舍入规则(四舍六入五取偶),如果你的数值小数部分永远不会等于或超过0.5,也可以直接用这种写法:
$val = 1024.24 $intVal = [int]$val # 执行后 $intVal 的值为 1024
注意如果小数部分为0.5时会有例外,比如[int]1025.5会得到1026而不是1025,对精度要求高的场景不推荐这种写法。
- 方案3:纯正数场景下使用
[Math]::Floor()方法
如果业务场景只需要处理正数,也可以用向下取整的Floor方法,效果和Truncate一致:
$val = 1024.24 $intVal = [Math]::Floor($val) # 执行后 $intVal 的值为 1024
内容的提问来源于stack exchange,提问作者Se7en
相关产品推荐
相关产品推荐

