Как преобразовать число с плавающей запятой в строку, сохранив все его цифры?Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Как преобразовать число с плавающей запятой в строку, сохранив все его цифры?

Сообщение Anonymous »

Я знаю, что преобразование типов может привести к небольшим ошибкам из-за того, что плавающие числа хранятся в двоичном формате. Тем не менее, у меня есть вариант использования числа с плавающей точкой в ​​строке, но теперь у меня есть проблема, связанная с удалением символа:

Код: Выделить всё

$we_all_float_down_here = (float) 3467.60009765625;
$expected_string = '3467.60009765625';

var_dump($expected_string === (string) $we_all_float_down_here);

echo "Last chars gets stripped:\n"
. (string) $we_all_float_down_here . "\n"
. $expected_string;
Это выходные данные:

Код: Выделить всё

bool(false)
Last chars gets stripped:
3467.6000976562
3467.60009765625
Как преобразовать число с плавающей запятой в строку, не теряя при этом ни одной цифры?
https://onlinephp.io/c/b3af3

Примечание:
  • Код: Выделить всё

    ini_set('precision', 100);
    не исправит то, что некоторые значения с плавающей запятой сохраняются неточно.
  • Код: Выделить всё

    number_format
    может работать для некоторых чисел, как в моем примере, но это также не меняет того факта, что другие числа будут слишком неточными, или, скорее, что некоторые числа с плавающей запятой идентичны другим по-разному выглядящим числам с плавающей запятой. (В десятичном формате .99999... (математически правильно) идентично 1, даже если оно выглядит по-другому. В php из-за двоичного представления и ограничений памяти числа с плавающей запятой для 3467.6000976563 и 3467.60009765625318323146 имеют вид (математически-неверно) здесь идентично.)
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»