Estoy generando 10 flotantes aleatorios entre 6 y 8 (todo por una buena razón) y escribiéndolos en una base de datos mysql en forma serializada. Sin embargo, una peculiaridad parece surgir en el momento de almacenamiento:PHP - serializar puntos flotantes
Antes de almacenar Estoy salida los mismos datos para ver lo que parece, y esto es el resultado consigo
a:10:{i:0;d:6.20000000000000017763568394002504646778106689453125;i:1;d:7.5999999999999996447286321199499070644378662109375;i:2;d:6.4000000000000003552713678800500929355621337890625;..}
Como se puede ver , Obtengo números largos como 6.20000000000000017763568394002504646778106689453125 en lugar de lo que realmente me gustaría ver, solo 6.2. Esto solo ocurre cuando serializo los datos, si acabo de sacar la matriz, obtengo los flotantes con un decimal. Aquí está mi código:
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);
Parece rondas de eco flota en sí, pero eso es extraño – usoban