2015-01-13 11 views
5

Chcę utworzyć liczbę losową między dwiema liczbami dziesiętnymi z krokiem 0,5.PHP losowa dziesiętna między dwoma miejscami dziesiętnymi z krokiem 0,5

Przykłady: 0, 0,5, 1, 1,5, 2, 2,5, 3, 3,5, 4, 4,5, 5, ...

używać PHP do generowania losowych dziesiętne Beteween dwóch miejsc po przecinku

tej pory Potrafię generować liczby od 0 do 5 za pomocą przecinka dziesiętnego.

Jak zintegrować krok 0.5?

$min = 0; 
$max = 5; 
$number = mt_rand ($min * 10, $max * 10)/10; 
+0

dlaczego nie po prostu 'mt_rand ($ min + $ krokiem $ max-$ krok) + $ krok '? –

+1

Nie jestem pewien, czy rozumiem, czego chcesz. Czy chodzi ci o losowe wybieranie liczb od minimalnej do maksymalnej z krokiem 0,5? czyli jeden z numerów z twojej listy? – 1010

+1

@MarcB jeśli krok wynosi 0,5 wyjścia będzie 'x.5' –

Odpowiedz

4

ten powinien pracować dla Ciebie:

$min = 0; 
$max = 5; 
echo $number = mt_rand($min * 2, $max * 2)/2; 
+1

użyj matematyki luke –

+0

@Dagon Co masz na myśli z' math luke'? nie rozumiem – Rizier123

+0

@ Rizier123: Nie fanem Star Wars, prawda? – AbraCadaver

0

Innym możliwym sposobem:

function decimalRand($iMin, $iMax, $fSteps = 0.5) 
{ 
    $a = range($iMin, $iMax, $fSteps); 

    return $a[mt_rand(0, count($a)-1)]; 
} 
Powiązane problemy