在Java中从指数forms转换为十进制

我想将指数转换为十进制。 例如1.234E31234

它不是真正的转换,而是关于如何显示数字。 您可以使用NumberFormat指定数字的显示方式。

检查区别:

 double number = 100550000.75; NumberFormat formatter = new DecimalFormat("#0.00"); System.out.println(number); System.out.println(formatter.format(number)); 

BigDecimal.valueOf(doubleToFormat).toPlainString()怎么样

在Java中使用双打和长数时,您将看到大多数值以指数forms显示。

例如:在下面我们将2.35乘以10000并打印结果。

 //Division example Double a = 2.85d / 10000; System.out.println("1. " + a.doubleValue()); //Multiplication example a = 2.85d * 100000000; System.out.println("2. " + a.doubleValue()); 

结果:

  1. 2.85E-4
  2. 2.85E8

因此,您可以看到结果以指数格式打印。 现在,您可能希望以纯十进制格式显示结果,如:0.000285或285000000.您只需使用类java.math.BigDecimal 。 在下面的示例中,我们使用BigDecimal.valueOf()将Double值转换为BigDecimal ,而将.toPlainString()转换为纯十进制字符串。

 import java.math.BigDecimal; //.. //.. //Division example Double a = 2.85d / 10000; System.out.println("1. " + BigDecimal.valueOf(a).toPlainString()); //Multiplication example a = 2.85d * 100000000; System.out.println("2. " + BigDecimal.valueOf(a).toPlainString()); 

结果:

  1. 0.000285
  2. 2.85亿

上述方法的唯一缺点是它会生成长串数。 您可能希望限制该值并将数字四舍五入为5或6小数点。 为此,您可以使用java.text.DecimalFormat类。 在下面的例子中,我们将数字四舍五入为4小数点并打印输出。

 import java.text.DecimalFormat; //.. //.. Double a = 2.85d / 10000; DecimalFormat formatter = new DecimalFormat("0.0000"); System.out.println(formatter .format(a)); 

结果:

0.0003

我刚尝试用一行压缩这段代码,它会打印带有两位小数的’a’值:

 new DecimalFormat("0.00").format(BigDecimal.valueOf(a).toPlainString()); 

快乐转换:)

您可以使用DecimalFormat将其转换为String

@ b.roth的答案只有在国家特定的情况下才是正确的。 我使用了这个方法并得到了i18n问题,因为new DecimalFormat("#0.00)取特定国家的小数分隔符。例如,如果一个国家使用十进制分隔作为”,“那么格式化的值将在0,00中(例如,1.2e2在某些地方将是120.00和120,00)在某些地方由于i18n问题如此处所述。

我喜欢的方法是`(new BigDecimal(“1.2e2”)。toPlainString())

只需将以下标记添加到jspx: –

  
 String data = Long.toString((long) 3.42E8); System.out.println("**************"+data); 

尝试以下方法

 long l; double d; //It holds the double value.such as 1.234E3 l=Double.valueOf(time_d).longValue(); 

你得到变量l中的十进制值。

你可以做:

 BigDecimal .valueOf(value) .setScale(decimalLimit, RoundingMode.HALF_UP) .toPlainString()