我想以BigDecimal
科学记数法打印 a ,以便小数点后有 5 位数字。例如:-3.12345E-51
,9.12345E100
.setScale()
在这种情况下不起作用,因为我事先不知道科学计数法中数字的指数。而且,BigDecimal
好像没有getExponent()
办法。
实现这一目标的最佳方法是什么?先感谢您。
我想以BigDecimal
科学记数法打印 a ,以便小数点后有 5 位数字。例如:-3.12345E-51
,9.12345E100
.setScale()
在这种情况下不起作用,因为我事先不知道科学计数法中数字的指数。而且,BigDecimal
好像没有getExponent()
办法。
实现这一目标的最佳方法是什么?先感谢您。
您应该使用DecimalFormat以指定格式打印数字:
BigDecimal bigDecimal = new BigDecimal(-3.12345E-51);
DecimalFormat format = new DecimalFormat("0.#####E0");
System.out.println(format.format(bigDecimal));
您还可以使用方法DecimalFormat#setMaximumFractionDigits(int)配置小数位数:
DecimalFormat format = new DecimalFormat("0E0");
format.setMaximumFractionDigits(6);