如何在Python中将非常大的数求和为1

Joa*_*ano 5 python precision python-3.x

所以想象我有

>>> a = 725692137865927813642341235.00
Run Code Online (Sandbox Code Playgroud)

如果我做

>>> sum = a + 1
Run Code Online (Sandbox Code Playgroud)

然后

>>> sum == a
True
Run Code Online (Sandbox Code Playgroud)

这是因为 a 大于某个阈值。

有没有类似的技巧logsumexp来执行此操作?

PS:a是一个np.float64.

Bil*_*lbo 0

将 a 除以 100,000 然后加 1 再乘以 1 吗?例如。

a=725692137865927813642341235.00
a /= 100000
a += 0.00001
a *= 100000
Run Code Online (Sandbox Code Playgroud)