![](/img/trans.png)
[英]Regex in java to find if a String is in the format of a decimal number with a trailing zero
[英]java + converting String to Double appends trailing zero after decimal
我不明白,為什么這段代碼會折回10.0,而不是10
Double inputDouble = Double.valueOf("10");
System.out.println(inputDouble);
要求是如果我通過10.00,輸出應該是10.00
如果我通過10.0,輸出應該是10.0
如果我通過10,輸出應該是10
有可能並且以干凈的方式
要求是如果我通過10.00,輸出應該是10.00
然后您使用了錯誤的類型。 double
沒有有效數字的概念-10、10.0和10.00之間沒有區別。
您應該嘗試使用BigDecimal
代替:
System.out.println(new BigDecimal("10")); // Prints 10
System.out.println(new BigDecimal("10.0")); // Prints 10.0
System.out.println(new BigDecimal("10.00")); // Prints 10.00
除了其他方面,即使double
確實嘗試保留無關緊要的數字,它也會考慮使用二進制數字,因為它是浮點型二進制點類型。 如果您對所提供的實際十進制數字感興趣,這是使用BigDecimal
的另一個原因。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.