Tôi đang cố gắng để phân chia một số một số lượng lớn bằng Python nhưng tôi nhận được một số kết quả lạChia số lượng lớn bằng Python
NStr = "7D5E9B01D4DCF9A4B31D61E62F0B679C79695ACA70BACF184518" \
"8BDF94B0B58FAF4A3E1C744C5F9BAB699ABD47BA842464EE93F4" \
"9B151CC354B21D53DC0C7FADAC44E8F4BDF078F935D9D07A2C07" \
"631D0DFB0B869713A9A83393CEC42D898516A28DDCDBEA13E87B" \
"1F874BC8DC06AF03F219CE2EA4050FA996D30CE351257287"
N = long(NStr, 16)
f2 = 476
fmin = N/float(f2)
print N - (fmin * float(f2))
này kết quả đầu ra như 0.0
như mong đợi. Tuy nhiên nếu tôi, ví dụ, thay đổi mã để
fmin = N/float(f2)
fmin += 1
tôi vẫn nhận được một sản lượng 0.0
Tôi cũng đã cố gắng sử dụng các gói số thập phân
fmin = Decimal(N)/Decimal(f2)
print Decimal(N) - (fmin * Decimal(f2))
Nhưng điều đó mang lại cho tôi một đầu ra của -1.481136900397802034028076389E+280
Tôi giả sử tôi không nói với python cách xử lý các số lớn đúng cách, nhưng tôi bị bối rối về nơi cần đi từ đây.
Tôi cũng nên thêm rằng mục tiêu cuối cùng là để tính toán
fmin = ceil(N/float(f2))
như một lâu dài và chính xác càng tốt
Có phải 'f2' luôn là số nguyên không? – huon
@dbaupp có nó sẽ là –