Loading...
PHP/MySQL | Рандомайзер float чисел / php
В php нет функции генератора рандомных float чисел.
Вот решил придумать своего утёнкаГг
Как вам?:-)
<?php
// Рандомайзер float чисел
function f_rand($min, $max) {

// Проверяем
if ($min > $max)
return false;

// Числа ли это?
if (!is_numeric($min) ||
!is_numeric($max))
return false;

// Оптимизация :)
if ($min == $max)
return $min;

// Ищем цифры после запятой
$com_min = explode('.', $min)[1];
$com_max = explode('.', $max)[1];

// Считаем количество цифр после запятой
$ch_min = iconv_strlen($com_min);
$ch_max = iconv_strlen($com_max);

// Находит общее число для преобразование в int и обратно
$mul = $ch_min > $ch_max ? pow(10, $ch_min) : pow(10, $ch_max);

// Преобразуем в int, рандомим и преобразуем в float
$random = mt_rand($min * $mul, $max * $mul) / $mul;

return $random;

}

P.S. Про траблу с числами 0.1234000 я знаю
Её не решить, ведь при преобразовании типов все лишние нули уходят в небытиеГг
________
посл. ред. 19.12.2017 в 19:08; всего 3 раз(а); by rekmixa
Онлайн: 4
Время:
Gen. 0.0647
(c) Bym.Guru 2010-2025