【发布时间】:2023-04-05 10:48:01
【问题描述】:
我需要一个循环来将数字增加小数点后第三位,打印应该是这样的
1.1
1.101
1.102
1.103
...
2.0
2.001
2.002
...
2.1
2.101
...
for ($i = 1.1; $i <= 3; $i += .001){
echo $i . '<br />';
}
开始似乎没问题 但是在循环的某个地方,十进制数变得很大
1.54
1.541
1.542
1.543
1.544
1.545
1.546
1.547
1.548
1.549
1.55
1.551
1.552
1.553
1.554
1.5549999999999
1.5559999999999
1.5569999999999
1.5579999999999
1.5589999999999
如果我使用
number_format($i,3)
我所有的数字都有 3 个小数点,例如
1.100,我需要它是 1.1。
我错过了什么?
【问题讨论】:
-
这与PHP中浮点数的存储方式有关link
-
@MatejŽvan 这个问题不是 php 特有的,它是浮点运算的一般效果。