2017-07-15 57 views

回答

1

它始終使用.作爲小數點分隔符。

java documentationscreenshot of java documentation

+0

謝謝,我試圖找到一些關於此的文檔,我沒有找到 – loki

+0

@PhilipCouling''.'在[文檔](https://docs.oracle.com/javase/8/docs/ API /爪哇/郎/ Double.html#的toString-雙)。 – 4castle

+0

https://docs.oracle.com/javase/7/docs/api/java/lang/Double.html#toString(double) – Professor901

0

當你學習了Double.toString)的Javadoc(你會發現,它提到的靜態方法Double.toString(double)

如果m爲0,它表示由字符「0.0」;因此,負零產生結果「-0.0」,正零產生結果「0.0」。

如果m大於或等於10-3但小於107,則它表示爲m的整數部分,以十進制形式表示,不帶前導零,後跟'。'。 ('\ u002E'),後跟一個或多個小數位,代表m的小數部分。

如果m小於10-3或大於或等於107,則以所謂的「計算機化的科學記數法」表示。設n是唯一整數,使得10n≤m < 10n + 1;那麼令a爲m和10n的數學精確商,以便1≤a< 10.然後將幅度表示爲a的整數部分,作爲單個十進制數字,後跟'。'。 ('\ u002E'),後跟十進制數字,表示a的小數部分,後跟字母'E'('\ u0045'),後面跟着n表示十進制整數,如方法Integer所產生的。的toString(INT)。

而該方法的javadoc詳細列出瞭如何構建該調用的結果。它清楚地表明,如果您想要本地化輸出,您需要自己使用NumberFormat。

+0

doc說:創建一個本地化的字符串表示形式浮點值,使用NumberFormat的子類...是的,我知道這個.. 。但是這並不是說如果Double.toString()將使用'。'或當前語言環境中定義的小數點分隔符 – loki

+0

那麼。它告訴你,你需要做一些事情來獲得本地化的輸出。結論:什麼都不做,你不會收到本地化的輸出。 – GhostCat

+0

不,我不同意,我在法國地方爲例,我想本地化的俄羅斯格式,所以醫生說清楚我需要使用子類os NumberFormat,但文檔從來沒有說目前會使用'。'。或','爲小數點分隔符 – loki

2

Double.toString()方法的代碼:

public String toString() { 
    return toString(value); 
} 

調用該靜態方法:

public static String toString(double d) { 
    return FloatingDecimal.toJavaFormatString(d); 
} 

的它的Javadoc是指該方法的用例和所有指.字符作爲之間的分隔符整數和小數部分:

  • 如果m爲零,則由字符「0.0」表示;因此, 負零產生結果「-0.0」和正零產生 結果「0.0」

  • 如果m大於或等於10 -3但小於107,則它被表示爲m的整數部分,小數形式沒有前導零 ,後跟」 。「(」 \ u005Cu002E'),再後面是表示m小數部分的一個或多個 十進制數字

  • 如果m小於10-3或者大於或等於107,則在這樣表示稱爲「電腦科學記譜法」。令n爲 的唯一整數,使得10n≤m<10n+ 1;那麼假設a是m和10n的數學精確商,因此1≤a< 10.然後將 幅度表示爲a的整數部分,作爲單個的 十進制數字,後跟'。'。 ('\ u005Cu002E'),後面跟着小數點 數字,代表的小數部分,後面跟着字母 'E'('\ u005Cu0045'),後面跟着一個n表示爲小數點 整數,由Integer.toString(int)方法。

它沒有明確地說:分隔符是.Double明確的.字符作爲分隔符的toString()方法的所有用例。
通過扣除,我們可能會考慮將.作爲字符分隔符。

+0

你看到了嗎?閱讀文檔中的「0.0」並不意味着「。」。將用作小數點分隔符。在文檔中,他們對分隔符 – loki

+0

沒有任何說明。它沒有明確說明:分隔符是'.',但'Double'的toString()方法的所有用例都將'.'字符顯示爲分隔符。通過扣除,'.'是字符分隔符。 – davidxxx

+1

是的,我同意,但我不明白爲什麼沒有doc沒有明確說明小數點分隔符總是''。 – loki

相關問題