首先是从Excel里面读数据的时候,Excel里面的数据是数字,太大,其实也不是数字,就是个银行卡号,复制进去,就自动成数字啦,然后就变成科学计数法啦,在使用poi读取数据的时候,读出来的就是科学计数法的数字,tostring之后,就不是我们想要的数据啦,这是一种情况。
还有一种情况,就是Excel里面的小数比如,1.2读出来可能就是1.19999,这个就是double类型的小数的值不准确的问题啦。
说是可以使用 BigDecimal 类来解决这个问题,但是,这个类要想使用好,也得有一番实践操作的。
先看代码,
/**
* BigDecimal的测试,要精确。
* 还要使得科学计数法的数字,做完全的展示。
*/
private static void testBigDecimal() {
Double d = 1.6D;
//不准确的初始化
BigDecimal bigDecimal = new BigDecimal(d);
System.out.println(bigDecimal);
//使得结果精确的初始化姿势
bigDecimal = new BigDecimal(d.toString());
System.out.println(bigDecimal);
bigDecimal = new BigDecimal("6.214822313132341212666E+18");
System.out.println(bigDecimal.toPlainString());</