Delgus
@Delgus

Как перевести из float в string для функции bcdiv?

Все эти 4 варианта кидают ошибку Divizion by zero
echo bcdiv(0.000132, 0.000011, 6);
echo bcdiv((string) 0.000132, (string) 0.000011, 6);
echo bcdiv(strval(0.000132), strval(0.000011), 6);

$one    = strval(0.000132);
$second = strval(0.000011);
echo bcdiv($one, $second, 6);


и только этот работает
echo bcdiv('0.000132', '0.000011',6);

Почему? Как же в PHP правильно перевести 0.000132 в '0.000132', чтоб библиотека bcmath и функция bcdiv поняли чего от них хотят?

Версия PHP 7.2
  • Вопрос задан
  • 80 просмотров
Решения вопроса 1
TommyV888
@TommyV888 Куратор тега PHP
-
strval и (string) возвращают строку в экспоненциальном формате, например 0.000011 вернет "1.1E-5", а bcdiv и подобные функции не поддерживают запись в таком виде. Используйте number_format для конвертации числа в строку:
number_format(0.000011, 6, '.', '');
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы