почему bccomp требует шкалы для правильной работы? - PullRequest
1 голос
/ 15 марта 2019
php > var_dump(bccomp('-10.00001', '-10.0'));
int(0)

php > var_dump(bccomp('-10.00001', '-10.0', 17));
int(-1);

Я совсем не понимаю.Разве весь смысл функций bcmath не позволяет вам выполнять сравнения / арифметику значений с плавающей запятой в виде строк, чтобы избежать проблем с плавающей запятой?

Почему даже есть масштаб, разве это не должно работать правильно каждый раз?раз?Какую возможную причину может потребовать, чтобы два неравных значения были возвращены равными?

1 Ответ

1 голос
/ 15 марта 2019

Не требуется шкала.Из документов :

"Параметр масштаба необязательный используется для установки количества цифр после десятичного знака, которое будетиспользовать в сравнении. "

В некоторых случаях вы бы хотели, чтобы число с определенным числом десятичных знаков было равно другому числу с другим числом десятичных знаков, длядовольно упрощенный пример:

10.44 = 10.4390
...