PowerShell数学计算的陷阱 1


PowerShell控制台可以非常方便的进行数学计算,方便归方便,偶尔也会引入一些陷阱。比如63.9-63。答案应当是63.9-63=0.9吧。但是对不起,你要失望了。请看:

PS> 63.9-63
0.899999999999999

用阳仔的话问:“这是为什么呢?”,请看:

PS> (63.9).gettype()

IsPublic IsSerial Name
-------- -------- ----
True     True     Double

Double类型和float都属于浮点类型,精度不高。而Decimal属于高精度,用于金融计算。所以:

PS> 63.9d-63
0.9
PS> [decimal](63.9d)-63
0.9
PS> (63.9d).GetType()

IsPublic IsSerial Name
-------- -------- ----
True     True     Decimal
本文链接: https://www.pstips.net/match-snare.html
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!

关于 Mooser Lee

我是一个Powershell的爱好者,创建了PowerShell中文博客,热衷于Powershell技术的搜集和分享。本站部分内容来源于互联网,不足之处敬请谅解,并欢迎您批评指正。

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注

一条评论 “PowerShell数学计算的陷阱