|
|
|
| Помогите дороботать код. Суть заключается в ограничение вывода знаков после точки, не более 2 знаков.
<?php
$random = 0.0 + 20.0 * mt_rand() / mt_getrandmax();
echo $random.'<br>';
?>
|
И есть ещё код где можно устанивить желаемое количество после точки но целые устанавливаются в ручную и не генерируются, а нужно чтобы целые тоже генерировались. Как сотворить чудо ума не приложу.
<?php
$zn = 2; // количество знаков после запятой
$cn = mt_rand(2,$zn-1);
$nu = array_fill(0,$cn,'0');
for($i=0; $i<$zn-$cn; $i++) $nu[] = mt_rand(0,9);
echo $nu = '0.'.implode('',$nu);
echo '<br />';
echo $nu+0;
?>
|
| |
|
|
|
|
|
|
|
для: Fox74
(22.06.2015 в 00:49)
| | http://php.net/number_format | |
|
|
|
|
|
|
|
для: Fox74
(22.06.2015 в 00:49)
| |
<?
$int=5; //кол-во целых
$flt=2; //дробных
$a='';
$b='';
for($i=0;$i<$int;$i++){
$a.=rand(0,9);
}
for($i=0;$i<$flt;$i++){
$b.=rand(1,9);
}
$result=(float)($a.'.'.$b);
echo $result;
?>
|
| |
|
|
|
|
|
|
|
для: Fox74
(22.06.2015 в 00:49)
| | как вариант:
<?php
$int = 10;
$flt = 5;
$all = $int + $flt;
$res = sprintf("%0.{$flt}f", mt_rand(pow(10, $all-1), pow(10, $all) -1) / pow(10, $flt));
var_dump($res);
|
| |
|
|
|
|
|
|
|
для: Fox74
(22.06.2015 в 00:49)
| |
<?php
$zn=2;
$random = 0.0 + 20.0 * mt_rand() / mt_getrandmax();
echo number_format($random,$zn,'.','')."<br>";
|
или в виде функции видимо не один раз будет применяться
<?php
function generate($zn){
$random = 0.0 + 20.0 * mt_rand() / mt_getrandmax();
return number_format($random,$zn,'.','');
}
$ololo0=2; //знаков после точки
$ololo1=3;
$ololo2=4;
echo generate($ololo0); echo "<br>";
echo generate($ololo1); echo "<br>";
echo generate($ololo2); echo "<br>";
|
| |
|
|
|
|
|
|
|
для: indexer
(22.06.2015 в 21:35)
| | Спасибо ребят за помощь и примеры. indexer Вам особое спасибо. | |
|
|
|