Задать вопрос
@reds

Почему после сериализации дробные числа становятся длинными?

PHP, Сохраняю массив в файл вот этой функцией:

function object2file($value, $filename)
{
$str_value = serialize($value);
$f = fopen($filename, 'w');
fwrite($f, $str_value);
fclose($f);
}

Если посмотреть файл, то число 8812.29 сохранено как:

8812.2900000000008731149137020111083984375

Можно ли как-то избежать, чтобы размер файла уменьшить?
  • Вопрос задан
  • 56 просмотров
Подписаться 1 Простой 1 комментарий
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Потому что задача serialize - передать значение максимально точно.
8812.29 в двоичной системе записывается как бесконечная дробь 10001001101011.01(00101000111101011100). При обратном переводе в десятичную запись возникает такой хвост из цифр.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽