簡體   English   中英

java +將String轉換為Double會在小數點后追加尾隨零

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM