是否可以在PHP中使用range()函数生成分数或小数列表?
如果你指定了步长(第三个参数),就可以生成指定的值。这个参数只在PHP 5中可用,但是现在应该都在使用它了。
例如,要生成0到1之间的小数,包括0和1,间隔为0.1:
print_r(range(0, 1, 0.1));
输出:
Array
(
[0] => 0
[1] => 0.1
[2] => 0.2
[3] => 0.3
[4] => 0.4
[5] => 0.5
[6] => 0.6
[7] => 0.7
[8] => 0.8
[9] => 0.9
[10] => 1
)
我现在使用PHP 7.0.10遇到了问题,可能是由于取值范围界限导致的取整问题。
它适用于范围0.1..0.9
:
print_r(range(0.1, 0.9, 0.1));
Array
(
[0] => 0.1
[1] => 0.2
[2] => 0.3
[3] => 0.4
[4] => 0.5
[5] => 0.6
[6] => 0.7
[7] => 0.8
[8] => 0.9
)
但是对于范围 0.2..0.9
,它会出现问题,例如 (0.9
丢失):
print_r(range(0.2, 0.9, 0.1));
Array
(
[0] => 0.2
[1] => 0.3
[2] => 0.4
[3] => 0.5
[4] => 0.6
[5] => 0.7
[6] => 0.8
)