64 位浮点计算是否精确

Eli*_*elz 0 floating-point precision numerical-methods

假设我的概率在 0.1 和 0.2 之间(其中 10,000 个),我想存储结果,即 64 位浮点中所有这些概率的乘积?它是一个可靠的计算吗?

Nat*_*dge 5

这是行不通的。如果将 10000 个数字相乘,所有数字都小于 0.2,则结果将小于0.2^10000大约1e-7000。可以用 64 位双精度浮点表示的最小正数大约是2.2e-308这样,您将下溢数千个数量级。如果你试试这个,你就会得到结果0.0

您可能希望改为添加他们的日志。