PHP версия 5.4.33
php.ini: bcmath.scale = 0 (также пробовал bcmath.scale = PHP_INI_ALL)
проблема:
php5433 -r «echo bccomp (0.00000001, 0, 9);» print 0
php5433 -r «echo bccomp (1.00000001, 1, 9);» print 1
Зачем? Кто-нибудь может помочь?
это потому что bccomp
первые 2 аргумента должны быть строками. как вы видете Вот когда они являются строками, это работает как ожидалось. почему это? я не уверен, но это, вероятно, имеет отношение к тому, почему echo 0.00000001;
выходы 1.0E-8 ( Научная нотация) в то время как echo 1.00000001;
выходы 1.00000001 (пример)
bcmath.scale = 0
устанавливает масштаб по умолчанию, только если он не указан, как bcscale
Устанавливает параметр масштаба по умолчанию для всех последующих вызовов математических функций bc, которые явно не задают параметр масштаба.
Других решений пока нет …