Невозможно увеличить внутренний предел AWK для факториала

Я запускаю код AWK и получаю

The factorial of 200 is inf

Это наводит меня на мысль, что AWK не использует тот же стандартный IEEE-модуль, что и Python. Кажется, что предел AWK составляет 170!.

Как вы можете заставить AWK понимать такие большие целые числа, как Python?

1 ответ

Решение

Отсюда:

Внутреннее представление всех чисел, включая целые числа, использует числа с плавающей запятой двойной точности. В большинстве современных систем они представлены в стандартном формате IEEE 754.

Python может иметь целые числа любой длины, в зависимости от доступной памяти. Это не зависит от IEEE 754. Кстати, этот стандарт дает предел поплавка двойной точности около 10^(+/-308). Значение log10(factorial(171)) составляет> 309. См. Также " Двойная точность" и что должен знать каждый ученый об арифметике с плавающей точкой.

Другие вопросы по тегам