Để lấy thông tin giới hạn máy (machine limits) cho các kiểu float, dùng numpy.finfo(). Tham số đầu vào là kiểu float (float16, float32, float64) hoặc instance của nó. Trả về object chứa min (giá trị nhỏ nhất) và max (giá trị lớn nhất) của kiểu đó.
Các bước thực hiện
Nhập NumPy:
import numpy as np
Kiểm tra các kiểu float với instance:
# float16
a = np.finfo(np.float16(12.5))
print("Giá trị nhỏ nhất float16...\n", a.min)
print("Giá trị lớn nhất float16...\n", a.max)
# float32
b = np.finfo(np.float32(30.5))
print("\nGiá trị nhỏ nhất float32...\n", b.min)
print("Giá trị lớn nhất float32...\n", b.max)
# float64 (mặc định)
c = np.finfo(np.float64(55.9))
print("\nGiá trị nhỏ nhất float64...\n", c.min)
print("Giá trị lớn nhất float64...\n", c.max)
Ví dụ hoàn chỉnh
import numpy as np
# float16
a = np.finfo(np.float16(12.5))
print("Giá trị nhỏ nhất float16...\n", a.min)
print("Giá trị lớn nhất float16...\n", a.max)
# float32
b = np.finfo(np.float32(30.5))
print("\nGiá trị nhỏ nhất float32...\n", b.min)
print("Giá trị lớn nhất float32...\n", b.max)
# float64
c = np.finfo(np.float64(55.9))
print("\nGiá trị nhỏ nhất float64...\n", c.min)
print("Giá trị lớn nhất float64...\n", c.max)
Kết quả đầu ra
Giá trị nhỏ nhất float16...
-65500.0
Giá trị lớn nhất float16...
65500.0
Giá trị nhỏ nhất float32...
-3.4028235e+38
Giá trị lớn nhất float32...
3.4028235e+38
Giá trị nhỏ nhất float64...
-1.7976931348623157e+308
Giá trị lớn nhất float64...
1.7976931348623157e+308