找回密码
 立即注册

QQ登录

只需一步,快速开始

王斌

金牌服务用户

19

主题

33

帖子

136

积分

金牌服务用户

积分
136
王斌
金牌服务用户   /  发表于:2024-5-16 10:43  /   查看:1889  /  回复:6
本帖最后由 Richard.Huang 于 2024-5-29 11:50 编辑

产品:SpreadJS
版本:V17.0.9
调研编号:SJS-24256
LastReview:2024/05/29
该问题还需要进一步调研

image.png677694091.png

vbvb.sjs

2.23 KB, 下载次数: 953

6 个回复

倒序浏览
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2024-5-16 11:07:38
沙发
您好,我按照您的描述在官网的在线表格编辑器中进行了导入,但是并没有复现您所描述的问题,您看我是否有缺失什么操作?:
image.png273754271.png
回复 使用道具 举报
王斌
金牌服务用户   /  发表于:2024-5-16 11:18:00
板凳
Richard.Huang 发表于 2024-5-16 11:07
您好,我按照您的描述在官网的在线表格编辑器中进行了导入,但是并没有复现您所描述的问题,您看我是否有缺 ...

A列拉长点.
回复 使用道具 举报
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2024-5-16 13:38:41
地板
造成这个问题的主要原因并不是SpreadJS出现了精度丢失问题,而是GcExcel沿用了Excel的精度设计,您可以在Excel中分别输入5.00 * 1.18,然后查看他的value值,注意是value值,不是显示值。我们发现Excel计算结果是存在浮点数计算误差的:
image.png355388182.png
但是SpreadJS对这个计算做了单独的处理,从而实现了数据的正确计算,前提是您需要重新计算一次,或者在导入时勾选导入后自动计算:
image.png42085570.png
image.png873621520.png
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2024-5-16 15:08:25
5#
本帖最后由 Richard.Huang 于 2024-5-29 11:39 编辑

这个问题我们会再内部调查一下,确认能否在不重新计算时显示去除误差的结果。
调研编号:SJS-24256
后续进展会继续在帖子中同步

回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2024-5-31 12:34:01
6#
这个sjs文件中,本身存储的计算结果就是5.8999999999999995
在默认配置:加载时不重新计算的情况下,spreadjs只是原样展示了这个结果。
spreadjs没有办法判断这个结果是由于gc或者excel的计算误差导致的。

因此,如果实在要在spreadjs不计算的情形下,解决这个误差,只能是给值设置一个格式化字符串,比如“0.###########”,即可解决这个问题
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-7-2 12:08:18
7#
您好,由于本帖较长时间没有回复,本帖先做结贴处理了,后续如您有其他问题,欢迎您开新帖提问。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部