Tôi đang tạo 10 float ngẫu nhiên từ 6 đến 8 (tất cả vì lý do chính đáng) và ghi chúng vào cơ sở dữ liệu mysql dưới dạng tuần tự. Nhưng có một điều không minh bạch dường như xuất hiện đồng thời lưu trữ:PHP - Tuần tự hóa các dấu phẩy động
Trước khi lưu trữ Tôi chỉ xuất ra cùng một dữ liệu để xem những gì nó trông như thế nào, và đây là kết quả tôi nhận được
a:10:{i:0;d:6.20000000000000017763568394002504646778106689453125;i:1;d:7.5999999999999996447286321199499070644378662109375;i:2;d:6.4000000000000003552713678800500929355621337890625;..}
Như bạn có thể nhìn thấy , Tôi nhận được các số dài như 6.20000000000000017763568394002504646778106689453125 thay vì những gì tôi thực sự muốn thấy, chỉ 6.2. Điều này chỉ xảy ra khi tôi tuần tự hóa dữ liệu, nếu tôi chỉ xuất ra mảng, tôi sẽ lấy các số float cho một số thập phân. Đây là mã của tôi:
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);
Trông giống như vòng lặp nổi nổi lên, nhưng điều lạ lùng – usoban