bcmath — десятичное умножение в переполнении стека

У меня проблема с умножением двух знаков после запятой 30.63 а также 0.15. Мой калькулятор говорит, что это должно привести к 4.60.

$commission = bcmul(30.63, 0.15,2);

Результат от этого 4.59.

Из того, что я прочитал, bcmul должен был работать с десятичными числами?

Большое спасибо,

0

Решение

От документация для $scale параметр для bcmul:

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

По сути это означает, что число будет округлено вниз (или до отрицательного числа), когда он используется, например,

> echo bcmul(0.99, 1, 1);
0.9

Для ваших значений 30,63 * 0,15 равно 4,5945. Поставка $scale значение 2 означает, что вы получите 4,59, как вы сообщили.

Я не уверен, почему вы ожидаете 4.60, если вы не ожидаете, что результат будет округлен вверх.

0

Другие решения

Других решений пока нет …