JAVA科学计数法转普通计数法

一、问题描述       

        在java中,当一个数字超过8位时,其int、float和double等类型的数据都是以科学计数法表示的,但是展示给用户的时候不能用科学技术法展示,要用普通计数法,以免给用户的使用带来困扰。

二、解决方法

String str = "12345678.9012345";
// 以点分割 获取小数位长度
String[] strList = str.split("\\.");
double dValue = Double.valueOf(str);
BigDecimal value = new BigDecimal(dValue);
if (strList.length == 2) {
    // double类型,四舍五入
    value = value.setScale(strList[1].length(), BigDecimal.ROUND_HALF_UP);
} else if (strList.length == 1) {
    // int类型
    value = value.setScale(0, BigDecimal.ROUND_HALF_UP);
}
System.out.println(value.toString());



你可能感兴趣的:(java)