1
A
回答
1
精密您可以使用此:
double x = 25.001;
int i = (int) x;
System.out.println(x);//Input
if (x - i <= 0.01) {
x = (int) x;
}
System.out.println(x);//Output
結果
Input Output
25.001 25.0
25.011 25.011
如果你想使用第二個變量可以使用:
int y = 0;
if (x - i <= 0.01) {
y = (int) x;
}
注意
但要注意,如果你輸入的是不正確的,你總是會得到0,我喜歡的第一個解決方案是第二個是好的。
0
如果(X-的Integer.parseInt(X)> = 0.001) //轉換這裏
0
圓潤的,你再不能在double
存儲數量,作爲double
是總是一個近似的實際值 - 一系列(負)2的冪。
所以你應該去做BigDecimal
儘可能多的人想做財務軟件。
如果你不喜歡的東西:
double adjustWhenCloseToInt(double x) {
long n = Math.round(x); // Could overflow for large doubles
if (Math.abs(x - n) < 0.01) {
x = n;
}
return x;
}
簡單
x = adjustWhenCloseToInt(x);
System.out.print(x);
是否仍打印0.00000001或此類。
的解決方案有
System.out.printf("%.2f", x);
或者更好的使用本地化的MessageFormat(千位分隔符和等)。由於浮點總是有舍入誤差,我一般會去BigDecimal,儘管它是一個間接使用的類。小心使用String構造:
new BigDecimal("3.99");
當他們再能保持2
相關問題
- 1. Java可能的有損轉換雙重轉換爲Int
- 2. 雙轉換爲int,捨去
- 3. 雙打轉換爲int
- 4. 轉換雙爲int在C#
- 5. 將int轉換爲雙Python
- 6. 轉換雙爲int在C + +
- 7. 雙轉換爲int WPF C#
- 8. 轉換雙轉換成int
- 9. java轉換爲int
- 10. 雙int轉換messup
- 11. 轉換爲int的Java
- 12. 將double轉換爲int(java)
- 13. Java將String []轉換爲int []
- 14. java將int轉換爲short
- 15. 轉換雙爲int誤差(1個關)
- 16. 無法從雙強制轉換爲int
- 17. 將雙重對象轉換爲int
- 18. PHP轉換爲int返回雙重
- 19. C++ unsigned int雙重轉換
- 20. 指定的轉換無效(雙精度轉換爲int)
- 21. 無法從int []轉換爲雙重錯誤java
- 22. Java Puzzler - 將一個雙精度型轉換爲int
- 23. 從'雙'轉換爲'int'需要縮小轉換
- 24. Java int的不能轉換爲boolean
- 25. Java enum getter轉換爲int的錯誤
- 26. 將Regular Int轉換爲最終的Java
- 27. 的Java:問題轉換字符爲int
- 28. 將子串轉換爲Java中的Int
- 29. 將int轉換爲java中的字節
- 30. 鑄造雙爲int像java
好的,什麼阻止你這麼做?是否有任何*特定*問題? – Pshemo