我最近读了很多关于浮点表示的内容(包括:How To Represent 0.1 In Floating Point Arithmetic And Decimal)。现在我明白 0.1 无法正确表示,当我这样做时:
System.out.println(2.0f - 1.9f);
我永远不会得到精确的结果。
所以问题是:如何在以下代码中表示 0.1f 才能正确打印 0.1?那是某种合成糖吗?在我上面提到的文章中说:0.1 在内存中表示为 0.100000001490116119384765625。那么为什么我没有得到这段代码的输出:
System.out.println(0.1f);
Java 是如何处理这个问题的?