将双精度浮点数四舍五入到最近的整数

14

如何将double转换为int,但无论小数部分的值是什么(只要不是0),都能将其向上舍入?

2个回答

15

您可以使用 .NET [Math]::Ceiling 函数并将结果转换为 [int]

PS > [int][Math]::Ceiling(1.1)
2   
PS > [int][Math]::Ceiling(1.6)
2
PS >

但是为什么这个等于101呢?:[int][Math]::Ceiling((100 / 11) * 11) - Pete
@Pete 这与计算机存储限制有关。100/11 = 9.0909....永远不可能在计算机中存储。 - David Klempfner

0

试试这个:

$value = 7.1 
$floor = [math]::floor([int32]$value)
$ceiling = $result = [math]::ceiling([int32]$value)

$floor 
$ceiling

返回:

3

4


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接