Java 在双精度逗号后只有三个数字
我试图在我的双精度值中逗号后只有三个数字。我有:Java 在双精度逗号后只有三个数字,java,casting,decimalformat,Java,Casting,Decimalformat,我试图在我的双精度值中逗号后只有三个数字。我有: DecimalFormat dfi_ = new DecimalFormat("#.000"); 我的替身: double myD = 6.082483660549182E-15; System.out.println("DF Version of myD: " + dfi_.format(myD)); 但结果是:myD的DF版本:,000 谢谢,结果是正确的。它显示(本地化)数字,精度为小数点后3位 值6.0824836660549182E
DecimalFormat dfi_ = new DecimalFormat("#.000");
我的替身:
double myD = 6.082483660549182E-15;
System.out.println("DF Version of myD: " + dfi_.format(myD));
但结果是:myD的DF版本:,000
谢谢,结果是正确的。它显示(本地化)数字,精度为小数点后3位 值
6.0824836660549182E-15
为0.0000000000000060824..
,非常接近于0
现在,在科学符号中显示数字,考虑一个“代码>”的格式,即“{0}”/代码> -这将导致输出<代码> 6082E-15(其中小数是由区域设置确定的),这是我所希望的。
(如果问题只是关于逗号,那么这只是一个本地化问题。)试试这个。找出您所在的地区(区域设置),并使用特定于该区域设置的
DecimalFormat
有关更多信息,请查看
输出:
========================================
Malaysia - ms_MY
123,456.789
#,##0.###
========================================
Qatar - ar_QA
123,456.789
#,##0.###;#,##0.###-
========================================
Iceland - is_IS
123.456,789
#.##0,###
========================================
Finland - fi_FI
123 456,789
# ##0,###
========================================
- pl
123 456,789
# ##0,###
========================================
Malta - en_MT
123,456.789
#,##0.###
and so on...
你期望的结果是什么?你所在的地区/国家(地区)?谢谢。这就是我要找的。使用
新的十进制格式(“E0”)
@user3551776很酷,很高兴你找到了解决方案!一个小问题是,我可以使用6082
而不是6082e-15
或6.0824836660549182e-15
@MeyLam,如果您想要对输出进行更多控制,则必须添加自定义逻辑。
========================================
Malaysia - ms_MY
123,456.789
#,##0.###
========================================
Qatar - ar_QA
123,456.789
#,##0.###;#,##0.###-
========================================
Iceland - is_IS
123.456,789
#.##0,###
========================================
Finland - fi_FI
123 456,789
# ##0,###
========================================
- pl
123 456,789
# ##0,###
========================================
Malta - en_MT
123,456.789
#,##0.###
and so on...