Преобразование поплавков из базы данных для использования с bcmath() ИЛИ как использовать bcmath?

Я получаю пару значений из запроса к базе данных. Значения, которые я получаю, выглядят так:

10.810000000000000497 и я хочу использовать только "10,81".

or

2.6899999999999999467 и я хочу использовать только 2,69

при использовании ini_set('precision', 20);

Как мне использовать эти значения, например, с bcadd()? Поскольку я просто хочу добавить 10,81 + 2,69?


person Valentin Despa    schedule 22.01.2013    source источник
comment
Используйте round или number_format, чтобы выполнить то, что вы хотите.   -  person Peon    schedule 22.01.2013
comment
Проблема, с которой я сталкиваюсь, связана с несколькими переменными, которые я получаю из базы данных. Эти переменные добавляются, вычитаются, умножаются и т. д. В большинстве случаев это работает нормально, но в некоторых случаях ошибка каким-то образом распространяется, и я НЕ получаю ожидаемых результатов (обычно отсутствует один цент).   -  person Valentin Despa    schedule 22.01.2013


Ответы (1)


У функций php BC_ есть еще один параметр: масштаб.

$num1 = 10.810000000000000497;
$num2 = 2.6899999999999999467;
$result = bcadd($num1, $num2, 2);
echo $result; // 13.50

Если вы хотите использовать его несколько раз, вы можете использовать bcscale() и поэтому вам не нужно будет указывать третий параметр каждый раз, когда вы его используете:

bcscale(2);
$num1 = 10.810000000000000497;
$num2 = 2.6899999999999999467;
$result = bcadd($num1, $num2);
echo $result; // 13.50
person HamZa    schedule 09.02.2013