64位浮点计算是否精确
Is the computation precise in 64-bit floating point
假设我的概率在 0.1 到 0.2 之间(其中有 10,000 个),我想存储结果,即所有这些概率在 64 位浮点数中的乘积?计算可靠吗?
这行不通。如果将 10000 个数字相乘,所有数字都小于 0.2,则结果将小于 0.2^10000
,大约是 1e-7000
。可以用 64 位双精度浮点数表示的最小正数大约是 2.2e-308
所以你会下溢几千个数量级。如果您尝试这样做,您将得到结果 0.0
.
您可能想要添加他们的日志。
假设我的概率在 0.1 到 0.2 之间(其中有 10,000 个),我想存储结果,即所有这些概率在 64 位浮点数中的乘积?计算可靠吗?
这行不通。如果将 10000 个数字相乘,所有数字都小于 0.2,则结果将小于 0.2^10000
,大约是 1e-7000
。可以用 64 位双精度浮点数表示的最小正数大约是 2.2e-308
所以你会下溢几千个数量级。如果您尝试这样做,您将得到结果 0.0
.
您可能想要添加他们的日志。