尾隨零,我無法理解,爲什麼這個代碼retursn 10.0,而不是10的java +將字符串轉換爲Double追加後小數
Double inputDouble = Double.valueOf("10");
System.out.println(inputDouble);
要求是 如果我通過10.00,輸出應爲10.00
如果我通過10.0,輸出應爲10.0
和如果我通過10,輸出應該是10
是有可能和在一個乾淨的方式
尾隨零,我無法理解,爲什麼這個代碼retursn 10.0,而不是10的java +將字符串轉換爲Double追加後小數
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
的另一個原因。
好吧,那麼可以做些什麼來刪除/丟棄輸出中的尾隨零,它是Double類型的。所以Double inputDouble = Double.valueOf(「10」);返回10 –
@Naroji:你可以使用['DecimalFormat'](http://docs.oracle.com/javase/8/docs/api/java/text/DecimalFormat.html)。 –
'10.00' =='10.0' =='10',所以沒有。 – Pshemo