Powershell for loop无法正常工作。可能的数据类型或库错误

时间:2015-03-05 05:25:04

标签: powershell for-loop

我的代码如下

for($i = 0.25; $i -le 0.70; $i+=0.05)
{
    [array]$taper_ratio += $i
}

应该在数组taper_ratio中添加0.25到0.70之间的值,包括0.70,但是当我运行它时,它不起作用。相反,数组包含的是

PS C:\Users\Austin> $taper_ratio
0.25
0.3
0.35
0.4
0.45
0.5
0.55
0.6
0.65

你可以看到没有0.70

1 个答案:

答案 0 :(得分:1)

如果您在循环中运行$i.GetType(),则会看到$i的类型为Double。所有浮点类型(包括double)实际上是最接近的可用值。这意味着例如数字是0.7,但实际值可能是0.69999999999999999999999。在这种情况下,它不满足条件$i -le 0.70

另一方面,

Decimal类型准确地表示了值,因此您可以将$i的类型转换为十进制,然后脚本应该可以工作:

$taper_ratio =@()
[decimal]$i = 0
for($i = 0.25; $i -le 0.70; $i+=0.05)
{
    $taper_ratio += $i
}
$taper_ratio