gpt4 book ai didi

java - 双重计算产生奇数结果

转载 作者:太空宇宙 更新时间:2023-11-04 14:52:22 25 4
gpt4 key购买 nike

我有 2 个数字存储为 Double,1.4300 和 1.4350。当我减去 1.4350 - 1.4300 时,得到的结果是:0.0050000000000001155。为什么它在末尾添加 1155?如何解决这个问题,使其返回 0.005 或 0.0050?我不确定四舍五入是否有效,因为我正在处理 2 位和 4 位小数。

最佳答案

哦,我喜欢这些......这些是由 double 表示的不准确性引起的,而浮点运算充满了这些。它通常是由二进制中重复出现的数字(即以 2 为基数的浮点表示形式)引起的。例如,十进制中的 1/3 = 0.3333' 在二进制中 1/10 是一个循环数,这意味着它无法完美表示。试试这个:1 - 0.1 - 0.1 - 0.1 - 0.1。你不会得到 0.6 :-)

要解决这个问题,请使用 BigDecimal(首选)或通过首先将其乘以 10000 之类的值,然后四舍五入,然后再次除以操作 double (不太干净)。

好问题......它在过去引起了巨大的问题。导弹越过目标、卫星发射后坠毁等等。在网上搜索一些,你会大吃一惊!

关于java - 双重计算产生奇数结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23642553/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com