Apophenia Overload
Apophenia Overload

Reputation: 2504

PHP: Can range() be used for fractions?

Could it be possible to use the range() function in PHP to generate a list of fractions or decimals?

Upvotes: 4

Views: 2300

Answers (2)

Sébastien Fauvel
Sébastien Fauvel

Reputation: 499

It's broken for me now on PHP 7.0.10, probably due to rounding issues depending on the range boundaries.

It works for the range 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
)

Bit it is broken for the range 0.2..0.9, for instance (0.9 is missing):

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
)

Upvotes: 1

BoltClock
BoltClock

Reputation: 724252

Yeah, if you specify the step (third parameter). This parameter is only available in PHP 5, but you should be using that by now anyway.

For example, to generate decimals between 0 and 1, inclusive, in intervals of 0.1:

print_r(range(0, 1, 0.1));

Output:

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
)

Upvotes: 8

Related Questions