RandomFloatVariable::__construct()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 9
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 9
rs 9.6666
cc 2
eloc 5
nc 2
nop 3
1
<?php
2
/**
3
 * NextFlow (http://github.com/nextflow)
4
 *
5
 * @link http://github.com/nextflow/nextflow-php for the canonical source repository
6
 * @copyright Copyright (c) 2014-2016 NextFlow (http://github.com/nextflow)
7
 * @license https://raw.github.com/nextflow/nextflow-php/master/LICENSE MIT
8
 */
9
10
namespace NextFlow\Math\Variable;
11
12
use NextFlow\Php\Variable\FloatVariable;
13
14
/**
15
 * A variable that holds a random float variable.
16
 */
17
final class RandomFloatVariable extends FloatVariable
18
{
19
    /**
20
     * Initializes a new instance of this class.
21
     *
22
     * @param float $min The minimum value.
23
     * @param float $max The maximum value.
24
     * @param float $decimals The amount of decimals to round to.
25
     */
26
    public function __construct($min = 0.0, $max = 1.0, $decimals = 0)
27
    {
28
        $value = ($min + lcg_value() * (abs($max - $min)));
29
        if ($decimals != 0) {
30
            $value = round($value, $decimals);
31
        }
32
33
        parent::__construct($value);
34
    }
35
}
36