Tôi thấy rằng việc tạo ra một số cụ thể của thập phân.Decimal
cách tiếp cận tốt nhất với các con số những con số quan trọng được sử dụng để khởi tạo các biến sau kluge
của:
nhập số thập phân
THIS_IS_JUST_AN_EXAMPLE = 0,00001/3,0
với thập phân.localcontext() là c:
c.prec = 5
kluge = thập phân.Decimal(THIS_IS_JUST_AN_EXAMPLE) + thập phân.Decimal(0)
ngây thơ = thập phân.Decimal(THIS_IS_JUST_AN_EXAMPLE)
in đại diện (kluge)
in đại diện (ngây thơ)
# Thập phân('0.0000033333')
# Thập phân ('0,0000033333333333333374718233758915442166426146286539733409881591796875')
Dòng đầu ra đầu tiên hiển thị yêu cầu thập phân.Decimal
Số, có 5 chữ số có nghĩa. Dòng thứ hai trong kết quả hiển thị điều gì sẽ xảy ra nếu bạn không thêm
+ thập phân.Thập phân(0)
đối với RHS đã khởi tạo; nếu không có nó, kết quả sẽ là độ chính xác quá mức không cần thiết và vô dụng.
ngay cả khi không + thập phân.Thập phân(0)
hack, tôi thấy đoạn mã này dài dòng hơn mức cần thiết.
Tạo một với số lượng chữ số có nghĩa được yêu cầu Decimal
Cách chính xác là gì?
Câu hỏi này không Định dạng đối tượng thập phân Python theo độ chính xác được chỉ định Câu hỏi trùng lặp Xem đầu ra bên dưới.
import math
nhập số thập phân
cơ sở = math.pi
với thập phân.localcontext() là c:
c.prec = 13
đối với số mũ trong [6, 4, 2, 0, -2, -4, -6]:
thang đo = 10**số mũ
kluge = thập phân.Decimal(cơ sở * tỷ lệ) + thập phân.Decimal(0)
in đại diện (kluge)
# Thập phân('3141592.653590')
# Số thập phân('31415.92653590')
# Số thập phân('314.1592653590')
# Số thập phân('3.141592653590')
# Thập phân('0.03141592653590')
# Thập phân('0.0003141592653590')
# Thập phân('0.000003141592653590')
sử dụngĐịnh dạng đối tượng thập phân Python theo độ chính xác được chỉ địnhPhương thức được đưa ra trong câu trả lời không thể nhận được các mục hiển thị ở đầu ra ở trên chỉ vìVấn đề này không liên quan gì đến đầu ra được định dạng.
Câu hỏi này là về cách sử dụngmô-đun cụ thể (decimal
) tạo một đối tượng cụ thể của lớp được xác định bởi mô-đun này. Cụ thể hơn, đó là việc tìm cách sử dụng decimal
mô-đun để đạt được kết quả hiển thị mà không cần dùng đến việc thêm thập phân.Decimal(0)
.
có vẻ như bạn đang tìm kiếmBối cảnh.create_decimal
:
Tạo một phiên bản thập phân mới từ số nhưng sử dụng self như bối cảnh. Decimal
hàm tạo, độ chính xác của ngữ cảnh, phương pháp làm tròn, cờ và bẫy được áp dụng cho chuyển đổi.
>>> thập phân.Context(prec=5).create_decimal(0.00001/3.0)
Thập phân('0.0000033333')
Tôi là một lập trình viên xuất sắc, rất giỏi!