3
請問下面的語句適用於任何double
除了NaN
(Java原始雙精度IEEE-754):精密的Double.parseDouble()和將String.valueOf()
Double.parseDouble(String.valueOf(d)) == d
說,否則,不會解析連載(使用String.valueOf())double值總是產生確切的原始double?
請問下面的語句適用於任何double
除了NaN
(Java原始雙精度IEEE-754):精密的Double.parseDouble()和將String.valueOf()
Double.parseDouble(String.valueOf(d)) == d
說,否則,不會解析連載(使用String.valueOf())double值總是產生確切的原始double?
除了NaN之外,正如你所說的那樣,是的,那個不變應該保持不變。如果沒有,那是一個JDK bug。
Double.toString
說,這在它的Javadoc:
多少位必須打印爲m或a的小數部分?必須至少有一位數字來表示小數部分,並且除此之外還需要多少位數,但只需要多少位數來唯一地區分參數值和類型爲double的相鄰值。也就是說,假設x是由該方法對有限非零參數d產生的十進制表示所表示的精確數學值。那麼d必須是最接近x的double值;如果兩個double值都同樣接近x,那麼d必須是其中之一,d的有效數字的最低顯著位必須爲0
總之,它返回足夠的數字,以確定這雙唯一的,所以Double.parseDouble
應該返回完全相同的轉換爲一個字符串的雙。