Я генерирую 10 случайных чисел с 6 по 8 (все по понятной причине) и записываю их в базу данных mysql в сериализованной форме. Но одна особенность, похоже, возникает во время хранения:
Перед сохранением я просто выводю те же данные, чтобы посмотреть, как они выглядят, и вот результат, который я получаю
a:10:{i:0;d:6.20000000000000017763568394002504646778106689453125;i:1;d:7.5999999999999996447286321199499070644378662109375;i:2;d:6.4000000000000003552713678800500929355621337890625;..}
Как видите, я получаю длинные номера, например 6.20000000000000017763568394002504646778106689453125
вместо того, что я действительно хотел бы видеть, только 6,2. Это происходит только тогда, когда я сериализую данные, если я просто вывожу массив, я получаю число с плавающей запятой с точностью до одного десятичного знака.
Вот мой код:
function random_float ($min,$max) {
return ($min+lcg_value()*(abs($max-$min)));
}
$a1 = random_float(6, 8);
$a1 = round($a1, 1);
$a2 = random_float(6, 8);
$a2 = round($a2, 1);
$a3 = random_float(6, 8);
$a3 = round($a3, 1);
...
$array = array($a1, $a2, $a3, $a4, $a5, $a6, $a7, $a8, $a9, $a10);
echo serialize($array);