java - float 表示,Java 示例

标签 java floating-point numbers

<分区>

你能解释一下为什么我得到下一个结果吗:

当我运行这个时:

System.out.println((0.2 - 0.1));

我得到:0.1

当我运行这个时:

System.out.println((0.3 - 0.2));

我得到:0.09999999999999998

我知道数字“0.1”在二进制中没有有限表示,但它不能解释上面的结果。这很可能与特定语言无关,而是与数字在计算机中的存储方式有关。

最佳答案

Java 使用 IEEE floating point表示 double 值。这不是一个精确的表示,一些计算会导致以这种方式表现出来的微小错误。

关于java - float 表示,Java 示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20470114/

相关文章:

java - 如何获取 AST 中节点的完全限定名称?

ruby - 在 ruby​​ 中没有四舍五入的 float 格式

java - 数组赋值问题

floating-point - MXCSR控制寄存器的范围?

java - 对来自不同类的对象的数组列表进行排序

java - 如何构建在 java 中动态调整大小的布局?

python - 调整 Python Regex 以在 findall 结果中不包含单个数字

c - 将两个数字 [1, 10^10000] 作为字符数组相加 - C

javascript - 如何从数字列表中选出最小的数字?

Java volatile 变量的行为不正确。