Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Рандом
 
 автор: Fox74   (22.06.2015 в 00:49)   письмо автору
 
 

Помогите дороботать код. Суть заключается в ограничение вывода знаков после точки, не более 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;
?>

  Ответить  
 
 автор: man1   (22.06.2015 в 04:03)   письмо автору
 
   для: Fox74   (22.06.2015 в 00:49)
 

http://php.net/number_format

  Ответить  
 
 автор: Deed   (22.06.2015 в 08:59)   письмо автору
 
   для: 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;
?>

  Ответить  
 
 автор: Igorek   (22.06.2015 в 09:28)   письмо автору
 
   для: 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);

  Ответить  
 
 автор: indexer   (22.06.2015 в 21:35)   письмо автору
 
   для: 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>"

  Ответить  
 
 автор: Fox74   (22.06.2015 в 21:57)   письмо автору
 
   для: indexer   (22.06.2015 в 21:35)
 

Спасибо ребят за помощь и примеры. indexer Вам особое спасибо.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования