我想格式化String
:
String number = "3.4213946120686956E-9";
到此:
String number = "3.42E-9";
舍入到2位小数。我怎样才能实现它?
答案 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)
String number = "3.4213946120686956E-9";
DecimalFormat format = new DecimalFormat("#.##E0");
System.out.println(format.format(new BigDecimal(number)));