为啥用poi读取excel 的数字全是double

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥用poi读取excel 的数字全是double相关的知识,希望对你有一定的参考价值。

这是正常的。

    通过POI取出的数值默认都是double,即使excel单元格中存的是1,取出来的值也是1.0,这就造成了一些问题,

    如果数据库字段是int,那么就会wrong data type,所以需要对数值类型处理。


代码如下:


Cell cell = null;// 单元格  

Object inputValue = null;// 单元格值  

if(!isEmpty(cell) && cell.getCellType() == Cell.CELL_TYPE_NUMERIC)   

    long longVal = Math.round(cell.getNumericCellValue());  

    if(Double.parseDouble(longVal + ".0") == doubleVal)  

        inputValue = longVal;  

    else  

        inputValue = doubleVal;  

  

       这么处理后,单元格中的小数没有变化,如果是整数,也会取到整数。

参考技术A 以下链接供自修^_^
http://blog.csdn.net/yiyi_wx/archive/2008/10/27/3160482.aspx
http://wenku.baidu.com/view/0a8bc0db6f1aff00bed51e9c.html
http://faq.csdn.net/read/200362.html本回答被提问者和网友采纳

以上是关于为啥用poi读取excel 的数字全是double的主要内容,如果未能解决你的问题,请参考以下文章

java导入excel 后台poi解析时数据由14700.00变成了14699.99999999998这是为啥呢?

poi读取Excel时,如果单元格设置的是数字格式,如何解决整数与小数问题

java poi 读取excel 数字类型的怎么读到以后1都变成了1.0?

java poi读取日期格式数据“2012-01-01 12:00:00”

java poi 读取excel 数字类型

POI读取excel日期的问题