1
我使用BigDecimal來處理我的應用程序中的正數,並且我想在第四個之後使小數截斷。 我似乎幾乎找到了我想要的RoundingMode.DOWN,但是在BigDecimal從double創建時存在一些問題。使BigDecimal截斷,而不是一輪
例如:
System.out.println("123.11119 = " + new BigDecimal("123.11119").setScale(4, RoundingMode.DOWN)); //Print 123.1111 which is exactly what I want
System.out.println("123.1111 = " + new BigDecimal("123.1111").setScale(4, RoundingMode.DOWN)); //So does this one
但是,下面的打印123.1110
這是不是我想要的一切:
System.out.println("123.1111 = " + new BigDecimal(123.1111d).setScale(4, RoundingMode.DOWN));
問題是'123.1111d'可能被存儲爲'123.111099999999',從而導致你的問題。 –
是的。這是我懷疑的。有沒有辦法解決這個問題? – 0x56794E
是的。不要從雙打創建BigDecimals。 –