gpt4 book ai didi

java - 12.1 可以精确地表示为一个 float 吗?

转载 作者:搜寻专家 更新时间:2023-11-01 00:59:10 24 4
gpt4 key购买 nike

这是引用this question中的评论:

This code in Java produces 12.100000000000001 and this is using 64-bit doubles which can present 12.1 exactly. – Pyrolistical

这是真的吗?我觉得由于 float 表示为 2 的幂之和,因此无论您有多少位,都无法准确表示 12.1。但是,当我实现这两种算法并打印使用 (12.1, 3) 调用它们的结果时,我分别得到了他和我的:

12.1000000000000000000000000000000000000000000000000000000000000000000000000012.1000000000000010000000000000000000000000000000000000000000000000000000000

我使用 String.format("%76f") 打印了这个。我知道零比必要的多,但我没有看到 12.1 中有任何舍入。

最佳答案

没有。正如其他人在他的评论后续中指出的那样,(有限数量的)2 次方的总和永远不会恰好等于 12.1。就像你不能用十进制精确表示 1/3 一样,无论你在小数点后使用多少位。

关于java - 12.1 可以精确地表示为一个 float 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1904321/

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