将科学计数法转换为十进制计数法

有一个类似的问题,所以建议使用NumberFormat,这是我所做的。

我正在使用NumberFormat的parse()方法。

public static void main(String[] args) throws ParseException{

DecToTime dtt = new DecToTime();

dtt.decToTime("1.930000000000E+02");

}

public void decToTime(String angle) throws ParseException{

DecimalFormat dform = new DecimalFormat();

//ParsePosition pp = new ParsePosition(13);

Number angleAsNumber = dform.parse(angle);

System.out.println(angleAsNumber);

}

我得到的结果是

1.93

我真的没想到这会起作用,因为1.930000000000E +

02是一个看起来非常不寻常的数字,我是否必须先进行一些字符串解析才能删除零?还是有一种快速而优雅的方法?

回答:

当对科学计数形式的表达式使用DecimalFormat时,需要指定一个模式。尝试类似

DecimalFormat dform = new DecimalFormat("0.###E0");

有关DecimalFormat的信息,请参见javadocs。有一个标记为“科学计数法”的部分。

以上是 将科学计数法转换为十进制计数法 的全部内容, 来源链接: utcz.com/qa/434785.html

回到顶部