Java - 以科学计数法格式化数字
Posted
技术标签:
【中文标题】Java - 以科学计数法格式化数字【英文标题】:Java - Format numbers in scientific notation 【发布时间】:2014-09-05 18:57:26 【问题描述】:我想格式化这个String
:
String number = "3.4213946120686956E-9";
到这里:
String number = "3.42E-9";
四舍五入到小数点后两位。我怎样才能实现它?
【问题讨论】:
***.com/questions/2944822/…的可能重复 谢谢,有帮助。 【参考方案1】:试试new DecimalFormat("0.##E0")
。 Javadoc:DecimalFormat
例子:
public class Test
private static java.text.DecimalFormat sf = new java.text.DecimalFormat("0.##E0");
public static void main(String[] args)
System.out.println(sf.format(Double.parseDouble("3.4213946120686956E-9")));
;
输出:3.42E-9
【讨论】:
【参考方案2】:这不是最优雅的解决方案,但您可以:
EX:字符串编号 = "3.4213946120686956E-9";
如果字符串中有句点和 E
按句点分割字符串,得到句点后的前2个字符=42
获取末尾的最后 3 个字符 = E-9
然后将它与句点之前的所有字符一起添加回来 = 3 + "." + 42 + E-9
【讨论】:
很好,但该方法没有四舍五入:)【参考方案3】:了解DecimalFormat。
String number = "3.4213946120686956E-9";
DecimalFormat format = new DecimalFormat("#.##E0");
System.out.println(format.format(new BigDecimal(number)));
【讨论】:
以上是关于Java - 以科学计数法格式化数字的主要内容,如果未能解决你的问题,请参考以下文章
Java中的紧凑数字格式化行为(在十进制和科学记数法之间自动切换)
Jasper Report 以 CSV 格式导出带有科学计数法的数字
java BigDecimal用法详解(保留小数,四舍五入,数字格式化,科学计数法转数字等)