Как я могу получить вывод с реальным количеством цифр в части с плавающей запятой из функции bcdiv?

Проблема в том, что я не знаю, сколько цифр в части с плавающей запятой в выходных данных .. Я не могу назначить 4, например … может быть 100 цифр в плавающей запятой, например, n. Как я могу решить это?

 bcdiv('50','3',4); //16.6666
bcdiv('50','3'); // correct output => 16.66666666666667

Огромное спасибо…

0

Решение

В математике с плавающей точкой у вас нет точной точности. Это ограниченная точность, потому что компьютеры используют двоичную систему вместо десятичной системы, к которой мы, люди, привыкли. Так что пока мы с тобой легко 10 / 1 является именно так 0.1компьютер видит это как 0.1000000000000000055511151231257827021181583404541015625, Вот почему мы просто выбираем некоторую ограниченную точность, которая, по нашему мнению, будет достаточной, и игнорируем все остальные вещи в конце.

Увидеть ответ на этот вопрос: не сломана ли математика с плавающей точкой? Больше подробностей.

0

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

Код является:

# Suppose the value is 125.987654321012354.
$num = 1250.987654321012354;
echo $num;
$num_array = explode(".", $num);

# Floating point count.
$fCountDigit = strlen(@$num_array[1]); # Use the @ sign if there is no floating point. When the value is integer 123351
$intNumber = $num_array[0];

Проблема в том, что float имеет определенный лимит байтов в 4 байта. Так что имейте это в виду.

Например:

# Suppose the value is 1250000000000.987654321012354.
$num = 1250000000000.987654321012354;
echo $num;

Output: 1250000000001 # no floating point.
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector