PERL. Кол-во знаков после запятой после деления
Нужно с помощью Perl (или другим способом) поделить число, и результат вывести с точностью до 10 знаков после запятой. Например, если в Bash использовать команду:
echo "scale=10;6518772587507843661 / 203"| bc
результат: 32112180234028786.5073891625
Если через Perl:
$a=6518772587507843661/203;
printf ("%.10f\n",$a);
результат: 32112180234028788.0000000000
Как в Perl сделать результат такой же, как и через "bc", чтобы ответ был - 32112180234028786.5073891625?
Ответы (1 шт):
Автор решения: KoVadim
→ Ссылка
Вы упираетесь в точность вещественных чисел в интерпретаторе. А bc умеет длинную арифметику. Но, как всегда, можно воспользоваться библиотеками.
use Math::BigFloat;
Math::BigFloat->precision(-10); # это точность
my $x = Math::BigFloat->new(6518772587507843661);
my $y = Math::BigFloat->new(203);
$a=$x/$y;
print("$a\n");
или воспользоваться библиотекой bignum