PHP: range()函数能用于小数吗?

4

是否可以在PHP中使用range()函数生成分数或小数列表?

2个回答

8

如果你指定了步长(第三个参数),就可以生成指定的值。这个参数只在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
)

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
)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接