Câu trả lời:
Để float
có một cái nhìn tại sys.float_info
:
>>> import sys
>>> sys.float_info
sys.floatinfo(max=1.7976931348623157e+308, max_exp=1024, max_10_exp=308, min=2.2
250738585072014e-308, min_exp=-1021, min_10_exp=-307, dig=15, mant_dig=53, epsil
on=2.2204460492503131e-16, radix=2, rounds=1)
Cụ thể , sys.float_info.max
:
>>> sys.float_info.max
1.7976931348623157e+308
Nếu nó không đủ lớn, sẽ luôn có vô cực tích cực :
>>> infinity = float("inf")
>>> infinity
inf
>>> infinity / 10000
inf
Các long
loại có độ chính xác không giới hạn , vì vậy tôi nghĩ rằng bạn chỉ bị giới hạn bởi bộ nhớ có sẵn.
sys.float_info
có sẵn bắt đầu từ v2.6. Làm thế nào về v2.3-5?
5e-324
inf
đối với tất cả mọi thứ python và float_info.max
như một cách giải quyết khi trước đó không hoạt động, ví dụ time.sleep(float("inf"))
không được phép :(
sys.maxint không phải là số nguyên lớn nhất được python hỗ trợ. Đây là số nguyên lớn nhất được hỗ trợ bởi loại số nguyên thông thường của python.
long
.
sys.maxint
thậm chí không được định nghĩa trong Python 3, nó được gọi là sys.maxsize
, có lẽ cũng được ưu tiên trong Python 2.
sys.maxsize
(được giới thiệu trong Python 2.6) và sys.maxint
là hai thứ khác nhau. Cái đầu tiên đưa ra số lượng đối tượng tối đa được phép trong một bộ sưu tập (ví dụ: kích thước tối đa của danh sách, dict, v.v.) và tương ứng với một phiên bản đã ký của size_t
loại C ; thứ hai là các điểm sau đó int
loại chuyển sang long
, và là giá trị tối đa của một C long
. Trên một số nền tảng, hai giá trị là khác nhau: ví dụ: trên Windows 64 bit, sys.maxsize
đang 2**63-1
và sys.maxint
là 2**31-1
.
2**63-1
).
sys.maxint
trong Python 3.