将科学计数法转换为十进制计数法
有一个类似的问题,所以建议使用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