当与弦乐相乘时,Powershell四舍五入是多少?

时间:2017-08-11 11:51:01

标签: powershell double rounding

我在Powershell中遇到了一个奇怪的行为(在这种情况下是ISE)。

示例代码:

[String]$stringVar = "\m/(o.0)\m/ "
[Double]$doubleVar1 = 2.5
[Double]$doubleVar2 = 3.5
[Double]$doubleVar3 = 4.5
[Double]$doubleVar4 = 5.5

write-host "2x $($stringVar * $doubleVar1)"
write-host "4x $($stringVar * $doubleVar2)"
write-host "4x $($stringVar * $doubleVar3)"
write-host "6x $($stringVar * $doubleVar4)"

输出:

2x \m/(o.0)\m/ \m/(o.0)\m/ 
4x \m/(o.0)\m/ \m/(o.0)\m/ \m/(o.0)\m/ \m/(o.0)\m/ 
4x \m/(o.0)\m/ \m/(o.0)\m/ \m/(o.0)\m/ \m/(o.0)\m/ 
6x \m/(o.0)\m/ \m/(o.0)\m/ \m/(o.0)\m/ \m/(o.0)\m/ \m/(o.0)\m/ \m/(o.0)\m/

在我看来,powershell有一些奇怪的舍入行为。 它看起来甚至小数点向下舍入(或小数点被切除),并且不均匀的小数被四舍五入。 这是正常的行为吗?

这到底发生了什么?

Powershell(ISE)版本信息($ PSVersionTable):

Name                           Value                                                                                                                                                          
----                           -----                                                                                                                                                          
PSVersion                      5.1.15063.483                                                                                                                                                  
PSEdition                      Desktop                                                                                                                                                        
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}                                                                                                                                        
BuildVersion                   10.0.15063.483                                                                                                                                                 
CLRVersion                     4.0.30319.42000                                                                                                                                                
WSManStackVersion              3.0                                                                                                                                                            
PSRemotingProtocolVersion      2.3                                                                                                                                                            
SerializationVersion           1.1.0.1 

Powershell控制台中的相同行为。

编辑: 正如@wOxxOm所提到的,这是正常的.net4舍入行为。

关注此Stackoverflow thread

0 个答案:

没有答案