Chương trình của tôi tính toán hằng số toán học e, điều này là không hợp lý. Để làm được điều này, tôi cần phải có giai thừa về số lượng rất lớn.Số lượng lớn nhất mà lớp Thập phân có thể xử lý là gì?
int
không thể xử lý số lớn hơn 170 !. (Tôi thấy rằng máy tính lớn nhất của Google có thể xử lý là 170.654259, nhưng tôi không chắc làm thế nào một số nguyên không có thể được nhân lên.) float
cũng không thể xử lý các số rất lớn.
Tôi đã tính e đến 750000 chữ số và math.factorial(750000)
là số lượng lớn. Tuy nhiên, Decimal
xử lý nó dễ dàng.
Số lượng lớn có thể Decimal
xử lý trước khi số OverflowError
được nâng lên? Là kích thước khác nhau trong Python 2 so với Python 3?
'Thập phân' không thực sự mang lại cho bạn câu trả lời chính xác. –
Các số nguyên có độ chính xác vô hạn trong Python, ví dụ: 'math.thừa (170) 'là '7257415615307998967396728211129263114716991681296451376543577798900561843401706157852350749242617459511490991237838520776666022565442753025328900773207510902400430280058295603966612599658257104398558294257568966313439612262571094946806711205568880457193340212661452800000000000000000000000000000000000000000'. Xem [cách bạn có thể sử dụng 'decimal.Decimal' để tính toán câu trả lời với độ chính xác tùy ý (nhưng cố định)] (http://stackoverflow.com/a/347749/4279) – jfs
FWIW, không khó để tính toán số lượng lớn chữ số thập phân của e sử dụng số học số nguyên. Xem [ở đây] (http://forums.xkcd.com/viewtopic.php?t=14661&p=3066871#p3066964) ví dụ mã bằng Python và C. –