I'm trying to split some big numbers in Python, but getting some weird results
NStr = "7D5E9B01D4DCF9A4B31D61E62F0B679C79695ACA70BACF184518" \ "8BDF94B0B58FAF4A3E1C744C5F9BAB699ABD47BA842464EE93F4" \ "9B151CC354B21D53DC0C7FADAC44E8F4BDF078F935D9D07A2C07" \ "631D0DFB0B869713A9A83393CEC42D898516A28DDCDBEA13E87B" \ "1F874BC8DC06AF03F219CE2EA4050FA996D30CE351257287" N = long(NStr, 16) f2 = 476 fmin = N / float(f2) print N - (fmin * float(f2))
This prints out as 0.0 , as expected. However, if I, for example, change the code to
fmin = N / float(f2) fmin += 1
I still get output 0.0
I also tried using decimal package
fmin = Decimal(N) / Decimal(f2) print Decimal(N) - (fmin * Decimal(f2))
But it gives me the result -1.481136900397802034028076389E+280
I assume that I am not telling python how to handle large numbers correctly, but I am at a dead end on where to go from here.
I should also add that the ultimate goal is to compute
fmin = ceil(N / float(f2))
as long and precise as possible
Nathan baggs
source share