Страницы

Поиск по вопросам

пятница, 31 января 2020 г.

php математические операции высокой точности

#php #php7


При работе с числами на php вылазит проблема с точностью.
Например:

0.1 - 0.000023 = 0.09997700000000001


Пошарил по разным закаулкам интернета и везде предлагают разные решения:

round();
sprintf();
number_format();
и много других библиотек и функции


Собственно прошу совета, какой метод наиболее правильный и который будет всегда работать
с максимальной точностью
    


Ответы

Ответ 1



В документации по этому поводу есть отсылка к математическим вычисления произвольной точности:(в блоке "внимание") http://php.net/manual/ru/language.types.float.php

Ответ 2



Советую использовать библиотеку BCMath для вычисления высокой точности. Например: $a = 0.1; $b = 0.00023; echo bcsub($a, $b, 10); Третий необязательный параметр используется для установки количества знаков после десятичного разделителя в результате.

Комментариев нет:

Отправить комментарий