为了账号安全,请及时绑定邮箱和手机立即绑定

将双精度值与双精度常数进行比较

将双精度值与双精度常数进行比较

幕布斯6054654 2024-01-28 17:05:16
我知道有一些关于与 delta 进行双重比较的主题,这是比较双精度值的正确方法。然而我的问题是关于将双精度值与常量进行比较。JVM 是否有可能以错误的精度存储值 0(例如从 xml 读取)?有没有可能:double constant = 0.0;double reference = readValueFromDocument();//which is 0boolean result = constant == reference;result不会永远是吗true?更一般地说,这个问题听起来像:JVM 在分配期间是否存储了精度错误的双常量,或者它仅对计算有效?
查看完整描述

1 回答

?
HUH函数

TA贡献1836条经验 获得超4个赞

0.0、0.00 或 0 可以精确地表示为 8 字节双精度数。0.2 没有。你的情况将永远是正确的。仅当变量的计算方式为 0.1-0.2+0.1 时,您才可以预期会有小偏差。这对于所有浮点计算机语言都有效。另外 double 不具有精度。

对于财务软件来说,具有精度、刻度的BigDecimal定点往往是更好的选择。给出小数点后 2 位小数的精度。new BigDecimal("12.00")


查看完整回答
反对 回复 2024-01-28
  • 1 回答
  • 0 关注
  • 31 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信