Powershell汇总功能

时间:2018-09-03 11:03:27

标签: powershell math rounding

我想在Powershell中将小数点后两位取整。

我从双“ 178.532033”开始。如果我使用Excel ROUNDUP函数到小数点后两位,我会得到“ 178.54”。

=ROUNDUP(A1,2)

但是,如果我使用Powershell的Math类中包含的Round函数,则会得到结果“ 178.53”(因为我舍入而不是舍入):

$value = 178.532033

Write-Output = ([Math]::Round($value, 2))

在Powershell中是否可以将小数点后两位取整?

4 个答案:

答案 0 :(得分:1)

舍弃:

$a = 9;
$b = 5;
[math]::truncate($a/$b)

综述:

$a = 9;
$b = 5;
if ( ($a % $b) -eq 0 )
{
  $a/$b
}
else 
{
  [math]::truncate($a/$b)+1
}

答案 1 :(得分:1)

仅在四舍五入前加0.005:

$value = 178.532033
Write-Output = ([Math]::Round($value + 0.005, 2))

此间隔为[1.000,1.010)至[1.005,1.015)。第一个间隔ROUNDUP(2)到1.01中的所有值,第二个间隔ROUND(2)到1.01中的所有值。

通常,如果四舍五入到小数点后k位,则通过正常舍入结果,将0.5 / 10 ^ k向上舍入,或将其减去以向下舍入。

答案 2 :(得分:0)

这可以通过数学类的ceilingfloor方法轻松处理。

脚本:

$a = 657
$b = 234

$a/$b
[math]::floor($a/$b)
[math]::ceiling($a/$b)

输出:

2.80769230769231
2
3

答案 3 :(得分:-1)