У меня проблема с умножением двух знаков после запятой 30.63
а также 0.15
. Мой калькулятор говорит, что это должно привести к 4.60
.
$commission = bcmul(30.63, 0.15,2);
Результат от этого 4.59
.
Из того, что я прочитал, bcmul должен был работать с десятичными числами?
Большое спасибо,
От документация для $scale
параметр для bcmul
:
Этот необязательный параметр используется для установки количества цифр после десятичного знака в результате.
По сути это означает, что число будет округлено вниз (или до отрицательного числа), когда он используется, например,
> echo bcmul(0.99, 1, 1);
0.9
Для ваших значений 30,63 * 0,15 равно 4,5945. Поставка $scale
значение 2 означает, что вы получите 4,59, как вы сообщили.
Я не уверен, почему вы ожидаете 4.60, если вы не ожидаете, что результат будет округлен вверх.
Других решений пока нет …