Java - 科学计数法中的格式数字

时间:2014-09-05 18:57:26

标签: java double

我想格式化String

String number = "3.4213946120686956E-9";

到此:

String number = "3.42E-9";

舍入到2位小数。我怎样才能实现它?

3 个答案:

答案 0 :(得分:4)

试试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

答案 1 :(得分:1)

这不是最优雅的解决方案,但您可以:

EX:String number =“3.4213946120686956E-9”;

如果字符串有一个句号及其中的E

按句点分割字符串,并在句点= 42

之后获取前2个字符

最后得到3个字符= E-9

然后在句点= 3 +“之前将其与所有字符一起重新添加。” + 42 + E-9

答案 2 :(得分:1)

了解DecimalFormat

    String number = "3.4213946120686956E-9";
    DecimalFormat format = new DecimalFormat("#.##E0");
    System.out.println(format.format(new BigDecimal(number)));