gpt4 book ai didi

powershell - 如何在powershell中正确比较 double ?

转载 作者:行者123 更新时间:2023-12-04 23:27:55 24 4
gpt4 key购买 nike

尝试比较两个 double 时注意到以下行为。

鉴于以下基本脚本:

[double]$maxValue = 1.5
[double]$startValue = 1.2
[double]$counter = $startValue

while ($counter -lt $maxValue) {
Write-Host $counter
$counter += 0.1
}

输出:
1.2
1.3
1.4

如果我将 while 语句更改为使用小于或等于:
而 ($counter -le $maxValue) {

输出:
1.2
1.3
1.4

这与上面完全相同,因此最后缺少“1.5”的预期最后一个值。

如何在powershell中正确比较两个 double ?

最佳答案

我建议不要使用 double开始。使用 System.Decimal (在 PowerShell 中可能有别名 - 我不确定)。看起来您对精确的十进制值感兴趣,因此请使用适当的类型。

您没有看到 1.5 的原因是最接近 0.1 的双倍值比 0.1 略大一些……所以您实际上得到了 1.2000000001、1.3000000002、1.400000002 之类的数字 - 然后 1.5000000003 不小于 1.5。

查看我在 binary floating point 上的文章和 decimal floating point想要查询更多的信息。

关于powershell - 如何在powershell中正确比较 double ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9535893/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com