java如何将此2.52E-5更改为0.0000252?
Posted
技术标签:
【中文标题】java如何将此2.52E-5更改为0.0000252?【英文标题】:java how to change this 2.52E-5 to this 0.0000252? 【发布时间】:2015-07-30 06:58:44 【问题描述】:就像主题一样:我有这样的双重:
2.52E-5
我需要的是这个:
0.0000252
我唯一的想法就是这样做:
public Double change(Double d)
String do = Double.toString(d);
String[] a = do.split("E");
double b = Double.parseDouble(a[0]);
double c = Double.parseDouble(a[1]);
Double result = (Double)Math.pow(b, c);
return result;
但我只是好奇是否已经有现成的方法
【问题讨论】:
***.com/questions/18946388/… 使用NumberFormat
或String
格式化程序
我喜欢你解决这个问题的方式——非常有创意,但可惜不正确。不要将 data 与 formatting 混淆。
所以你想把 double 转换成 double 吗?好吧,您不需要格式化
不要尝试转换它,尝试以正确的格式使用它
【参考方案1】:
您可以使用printf()
喜欢:
System.out.printf("%f\n", value);
或者DecimalFormat
看这个:
DecimalFormat df = new DecimalFormat("#");
df.setMaximumFractionDigits(8);
System.out.println(df.format(value));
或者非常简单地使用BigDecimal
和toPlainString
:
new BigDecimal(value).toPlainString()
【讨论】:
返回错误:Exception in thread "AWT-EventQueue-0" java.util.IllegalFormatConversionException: f != java.lang.String
在哪一行?您使用的是什么版本的 Java?
好的,没关系...我忘了这是字符串,它包含一些字母,效果很好,谢谢【参考方案2】:
它们已经是同一个数字了。例如,在Java Repl 你可以这样做
java> 0.0000252 == 2.52e-5
java.lang.Boolean res0 = true
【讨论】:
以上是关于java如何将此2.52E-5更改为0.0000252?的主要内容,如果未能解决你的问题,请参考以下文章