Double.tostring()
是使用当前本地的小数分隔符还是为所有语言环境和实现修复的东西(即:dot“。”)?
答案 0 :(得分: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<10。 10N + 1;然后让一个人成为 数学上精确的m和10n的商使得1≤a<1。 10. 然后将幅度表示为a的整数部分,作为单个 十进制数字,后跟'。' ('\ u005Cu002E'),后跟小数 数字代表的小数部分,后跟字母 'E'('\ u005Cu0045'),后跟n表示为小数 整数,由Integer.toString(int)方法生成。
它没有明确说明:分隔符为.
,但toString()
Double
方法的所有用例都将.
字符显式为分隔符。
通过演绎,我们可以将.
视为字符分隔符。
答案 1 :(得分:1)
它总是使用.
作为小数点分隔符。
答案 2 :(得分:0)
当您研究Double.toString()的javadoc时,您会发现它提到了静态方法Double.toString(double):
如果m为零,则由字符&#34; 0.0&#34;;因此,负零产生结果&#34; -0.0&#34;正零产生结果&#34; 0.0&#34;。
如果m大于或等于10-3但小于107,那么它表示为m的整数部分,以十进制形式表示,没有前导零,后面跟着&#39;。&#39; (&#39; \ u002E&#39;),后跟一个或多个十进制数字,代表m的小数部分。
如果m小于10-3或大于或等于107,则表示为所谓的计算机化科学记数法。&#34;设n是唯一的整数,使得10n≤m<1。 10N + 1;然后将a设为m和10n的数学上精确的商,使1≤a<1。 10.然后将幅度表示为a的整数部分,作为单个十进制数字,然后是&#39;。 (&#39; \ u002E&#39;),后跟代表a的小数部分的十进制数字,后跟字母&#39; E&#39; (&#39; \ u0045&#39;),后跟n表示为十进制整数,由Integer.toString(int)方法生成。
该方法的javadoc非常详细地列出了该调用的结果是如何构建的。并且它清楚地表明,如果您想要本地化输出,则需要自己使用NumberFormat。