我正在尋找一個Java示例來檢查用戶輸入的雙精度數值是否包含2個小數位,例如,輸入的99.99將返回有效,輸入99.9或99.999將返回無效。驗證以檢查小數點後兩位的雙精度數
0
A
回答
2
5
Double d = 234.12413;
String[] splitter = d.toString().split("\\.");
splitter[0].length(); // Before Decimal Count
int decimalLength = splitter[1].length(); // After Decimal Count
if (decimalLength == 2)
// valid
else
// invalid
對於亨利的問題
double d1 = 0.50;
double d2 = d1%1;
DecimalFormat df = new DecimalFormat("#.00");
int decimalLength = (df.format(d2).length()-1);
if (decimalLength == 2)
//valid
else
// invalid
注:df.format(d2)
回報.50
,所以長度是3
0
還有一個辦法:
//assert that the string is valid number
String num = "99.99"; // I assume that is `String` because entered by user and not yet converted to `double`
int i = num.lastIndexOf('.');
if(i != -1 && num.substring(i + 1).length() == 2) {
System.out.println("The number " + num + " has two digits after dot");
}
*增加 如果你的魔杖使用本地具體decimal separator
使用以下expession代替'.'
的結果。
DecimalFormat format = (DecimalFormat) DecimalFormat.getInstance();
DecimalFormatSymbols symbols = format.getDecimalFormatSymbols();
//symbols.getDecimalSeparator() == '.';
相關問題
- 1. C++舍入雙精度小數點後兩位數
- 2. 打印雙精度小數點前後兩位數
- 3. 限制一個雙精度到小數點後兩位的小數位
- 4. 如何將雙精度轉換爲小數點後兩位?
- 5. 使用雙精度到小數點後兩位
- 6. 小數點後的雙精度
- 7. 雙精度變量小數點後4位數
- 8. 將雙精度值格式化爲小數點後1位
- 9. 圓形雙到小數點後兩位
- 10. 限制雙到小數點後兩位
- 11. 檢查兩個浮點數/雙精度值是否相等
- 12. 獲取雙精度值的小數位
- 13. 截斷雙精度到2位小數?
- 14. 從雙精度除去小數點後的尾部零點
- 15. Java - MySQL |雙精度和小數點
- 16. SQL C#雙精度小數點
- 17. 如何返回帶有兩位小數的雙精度值?
- 18. 如何在C#中使用雙精度型數字獲得小數點後兩位數的數字?
- 19. 標準雙精度IEEE浮點數有多少位的精度?
- 20. 雙精度和單精度浮點數?
- 21. .NET Web API返回大量小數位後的雙精度值
- 22. 格式化一個雙精度到兩位小數
- 23. 作爲兩個雙打總和的雙雙精度浮點數
- 24. 比較樓層/小區後的浮點數/雙精度比較
- 25. 驗證總數爲4位,小數點後只有2位數
- 26. 精確地將浮點數/小數點精確到小數點後3位?
- 27. 獲取小數位的精確精度從雙在.net 3.5
- 28. 帶小數點後精度的struct.unpack
- 29. 指定雙精度到另一個帶有1個數字的雙精度小數點後
- 30. 如何將小數點後兩位到小數點後n位?
到目前爲止你有什麼? – GaryF
SO不是代碼工廠! –
只要輸入字符串爲'String'(然後它很平凡),你只能這樣做 – Henry