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/… 使用NumberFormatString 格式化程序 我喜欢你解决这个问题的方式——非常有创意,但可惜不正确。不要将 dataformatting 混淆。 所以你想把 double 转换成 double 吗?好吧,您不需要格式化 不要尝试转换它,尝试以正确的格式使用它 【参考方案1】:

您可以使用printf() 喜欢:

System.out.printf("%f\n", value);

或者DecimalFormat看这个:

DecimalFormat df = new DecimalFormat("#");
df.setMaximumFractionDigits(8);
System.out.println(df.format(value));

或者非常简单地使用BigDecimaltoPlainString

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?的主要内容,如果未能解决你的问题,请参考以下文章

如何将此 JSON 字符串更改为特定格式?

如何将此过滤器表达式更改为参数化查询?

如何将此 pl/sql 更改为函数?

如何使用python将此json之类的字符串更改为json

如何使用 moment.js 将此值 theHour[0].times 更改为时间格式 (HH:mm)

如何将此正则表达式替换从替换单个单词更改为替换单词数组?