floating-point - 64位浮点计算是否精确
问题描述
假设我的概率在 0.1 和 0.2(其中 10,000 个)之间,我想存储结果,即所有这些概率在 64 位浮点中的乘积?它是一个可靠的计算吗?
解决方案
这行不通。如果将 10000 个数字相乘,均小于 0.2,则结果将小于0.2^10000
约1e-7000
. 可以用 64 位双精度浮点数表示的最小正数约为2.2e-308
,因此您将下溢数千个数量级。如果你尝试这个,你就会得到结果0.0
。
您可能想要添加他们的日志。
推荐阅读
- laravel - laravel-5.7 中的数据没有被删除
- python - Django TypeError:键必须是 str、int、float、bool 或 None,而不是 News_Channel
- selenium - 如何在不被阻止的情况下抓取网站?
- reactjs - 为什么当我尝试运行我的应用程序时 docker run 什么都不做?
- javascript - 追加后如何等待按钮单击解决
- reactjs - 如何在 React 应用程序中使用 gzip 压缩文件
- php - 我们可以从moodle到我们的系统获得课程开始回调和完整的回调响应吗?
- php - 如何使用laravel在if条件下获取所有记录
- python - 在 SVG pandas_bokeh 上更改地图上点的外观
- html - 如何使用 Bootstrap Flex 设置 CSS3 flex-basis 属性?