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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java导入excel 后台poi解析时数据由14700.00变成了14699.99999999998这是为啥呢?相关的知识,希望对你有一定的参考价值。

excel中这组数字的格式是数字类型的.两位小数。

参考技术A POI导入的时候你在后台用double接收的吧

试试用BigDecimal类接收吧
参考技术B 是不是是作为文本导入的,再改成数字类型是没用的追问

是作为数字类型导入的,后台刚接收到迭代出来的时候数据就已经变掉了,这个时候还没有对数据进行类型转换处理呢,所以我好奇怪;
如果是作为文本类型导入的话,取出的值是不会变的。

追答

我的意思是导入的是实际数据14699,但excel实际是文本格式
这时候再改成数字,设置小数位数是不变化的
可以把excel数据复制到记事本,清空excel数据,设置成数字,再从记事本把数据复制回来

java poi读取excel含小数列时,与excel显示不一样

如下截图为excel显示值,而我后台java程序却解析到如下值:0.0290.031...0.0160.0130000000000000010.0310.0099999999999999980.0120.0099999999999999980.0130000000000000010.015就是有些列像使用了函数,自动四舍五入了。我也尝试改excel列为文本格式,但依然某些列解析会出现小数点后面还有很长一串字符。如果我再手动将excel某些列值手动输入,又可以正常解析不知各位大侠有没有碰到过这种情况,怎么解决呀?

参考技术A 浮点型是有损精度的,可以用BigDecimal 参考技术B 按字符串处理,就不会 。。。。。。。按double,才会,JAVA的特点

以上是关于java导入excel 后台poi解析时数据由14700.00变成了14699.99999999998这是为啥呢?的主要内容,如果未能解决你的问题,请参考以下文章

poi 解析excel问题

使用OCUpload和POI一键上传Excel并解析导入数据库

java利用poi技术导入批量excel数据,并且分段存入数据库怎么解决

poi解析excel

java POI 导入excel时候日期格式转化

java poi Excel大数据量导入怎么提高速度