最近、浮動小数点表現についてたくさん読みました(これを含む:浮動小数点の算術および小数で0.1を表現する方法)。これで、0.1を正しく表現できないことがわかりました。これを行うと、次のようになります。
System.out.println(2.0f - 1.9f);
正確な結果は得られません。
したがって、問題は次のとおりです。0.1を正しく印刷するために、次のコードで0.1fをどのように表現しますか?それはある種の糖衣ですか?私が上で述べた記事では、次のように述べています。メモリ内で0.100000001490116119384765625として表される0.1。では、なぜこのコードでこの出力が得られないのですか?
System.out.println(0.1f);
Javaはこれをどのように処理しますか?