我正在尋找一種精確的方法來在Java中乘以兩個浮點數,並且我讀到應該使用BigDecimal,但它不能按預期工作。我究竟做錯了什麼?在Java中精確地乘以兩個數字
我的代碼:
BigDecimal a = new BigDecimal(3.53);
BigDecimal b = new BigDecimal(3.59);
BigDecimal c = a.multiply(b);
System.out.println(c);
結果:
12.672699999999998796873512674210388041622697702955394242845497954075284496866515837609767913818359375
預期結果:
12.6727
您應該嘗試打印'a'和'b'。 –
我看到它是相同的結果,預期的結果是上述值的一些四捨五入的值,您可以使用** Math.round ** –
之類的東西在開始的時候,浮點常量並不精確。必須深刻理解。 –