首先,需要将科学计数法转换成一下:
例如:
BigDecimal bd = new BigDecimal("3.40256010353E11");
然后转换成字符串:
String str = bd.toPlainString();
如果这个数字的长度是在int的范围内的话,是可以转换成int类型:
int a = Integer.parsInt(str);
如果这个数字的长度不是在Int范围内的话,得到的就不是你想要的数字了!
首先,需要将科学计数法转换成一下:
例如:
BigDecimal bd = new BigDecimal("3.40256010353E11");
然后转换成字符串:
String str = bd.toPlainString();
如果这个数字的长度是在int的范围内的话,是可以转换成int类型:
int a = Integer.parsInt(str);
如果这个数字的长度不是在Int范围内的话,得到的就不是你想要的数字了!
public static void main(String[] args)
{
BigDecimal bd = new BigDecimal("1.03219E+14");
System.out.println(bd.toPlainString());
}
不过会略去之后的数字
凡是科学计数法显示的数据都会带有E,用contains()判断
判断之后,用bigdecimal.valueof(数据),就会正常显示
//把保留小数设大一点
DecimalFormat df=new DecimalFormat("###.#################");
double d = 1.03219E+14;
System.out.println(df.format(d));