我的代码如下
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
答案 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