使用easyexcel出现精度问题排查及解决方案
3685 ·
9 ·
2021-05-14 11:32:01
最新编辑原因:
突出重点

使用easyexcel导入数据到数据库,在解析出现进度丢失问题,17.99 被处理成 17.8999999999,如果是12.99就不会有问题,可以被正常处理。这种问题很诡异,下面是排查思路。

 

第一步

在网上看看有没有类似的问题出现。经过一番搜索,网上并没有给出很明确的回答

 

第二步

去easyexcel的github仓库去查看issues,搜索 精度 关键字,发现有很多类似的问题

搜索链接: https://github.com/alibaba/easyexcel/issues?q=%E7%B2%BE%E5%BA%A6

https://github.com/alibaba/easyexcel/issues/1089 中给出解决方案,升级到最新版本

 

第三步

升级,查看easyexcel的release发布,https://github.com/alibaba/easyexcel/releases

可以看到最新版本是v2.2.10,升级到最新的版本即可解决问题,精度丢失问题就没有了

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>easyexcel</artifactId>
            <version>2.2.10</version>
            <exclusions>
                <exclusion>
                    <artifactId>poi-ooxml</artifactId>
                    <groupId>org.apache.poi</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>poi</artifactId>
                    <groupId>org.apache.poi</groupId>
                </exclusion>
            </exclusions>
        </dependency>

 


本作品系原创,采用《署名-非商业性使用-禁止演绎4.0 国际》许可协议.转载请说明出处
本文链接:https://www.upupor.com/u/21051411206543546368 复制
评论9
曦和
曦和
2021-10-17 13:33:44 ·  回复 · 1#

我觉得和excel有点关系,我用最新版的版本也有精度丢失的问题

upupor
upupor 楼主
2021-10-17 15:19:15 ·  回复 · 2#

@曦和:  要具体排查一下了,因为我当时是到github看了issue,官方有解决过这个问题,所以我升级了版本之后就没有问题了。如果你升级了新版本还是有问题的话,要首先看一下解析,如果解析那一步就出问题了,就是excel的问题,再具体排查

曦和
曦和
2021-10-17 17:44:33 ·  回复 · 3#

公式有影响么,我那个精度丢失的就是公式算出来的结果,丢失了精度

upupor
upupor 楼主
2021-10-17 17:57:25 ·  回复 · 4#

@曦和:  这和excel没关系了啊.... 你的问题是计算精度丢失问题

曦和
曦和
2021-10-17 18:05:36 ·  回复 · 5#

我读取的时候精度就缺失了 还没有计算

upupor
upupor 楼主
2021-10-17 18:07:27 ·  回复 · 6#
upupor
upupor 楼主
2021-10-17 18:09:31 ·  回复 · 7#
曦和
曦和
2021-10-18 09:08:57 ·  回复 · 8#
upupor
upupor 楼主
2021-10-18 10:01:08 ·  回复 · 9#

@曦和:  那应该就没有问题,看下jar包依赖,确定版本升上去了。如果你觉得搞来搞去太麻烦,可以使用String来接,在程序里面转一层,简单粗暴。

推荐阅读