找回密码
 立即注册

QQ登录

只需一步,快速开始

jyjc 讲师达人认证
高级会员   /  发表于:2022-4-12 20:34  /   查看:2275  /  回复:8
本帖最后由 Richard.Ma 于 2022-4-14 09:43 编辑

表格单元格的精度有限制, 超出后显示错误,会自动减少小数位。数据设置为123123144.91499999后,展示为123123144.92,导出的excel里面为123123144.915。重现步骤如下:
IRange elementRange = workbook.Worksheets[0].Range["B3"];
elementRange.NumberFormat = "0.00";
elementRange.Value = 123123144.91499999;

8 个回复

倒序浏览
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-4-13 09:22:13
沙发
问题已经收到,我这边验证后给您回复
回复 使用道具 举报
jyjc讲师达人认证
高级会员   /  发表于:2022-4-13 09:40:12
板凳
Richard.Ma 发表于 2022-4-13 09:22
问题已经收到,我这边验证后给您回复

嗯嗯,谢谢
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-4-13 10:17:11
地板
验证了一下,这个由于Java或.Net在浮点数计算时候存在精度误差,用户在使用公式时候会出现跟Excel的计算结果不一致的情况(其实Excel本身计算也存在着精度误差)。

GCEXCEL提供了AutoRoundValue属性设置,设置为true后可以得到和excel一致的结果
  1. workbook.AutoRoundValue=true;
复制代码
回复 使用道具 举报
jyjc讲师达人认证
高级会员   /  发表于:2022-4-13 11:17:48
5#
Richard.Ma 发表于 2022-4-13 10:17
验证了一下,这个由于Java或.Net在浮点数计算时候存在精度误差,用户在使用公式时候会出现跟Excel的计算结 ...

我试了一下,还是不行,workbook.AutoRoundValue这个是true的,不用单独设置。
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-4-13 11:53:30
6#
抱歉,是我这里验证错了,更改了设置的数值,
这个问题我需要作为bug报给研发来看看。帖子暂时保留处理,后续进展我在帖子中会更新
回复 使用道具 举报
jyjc讲师达人认证
高级会员   /  发表于:2022-4-13 19:43:38
7#
Richard.Ma 发表于 2022-4-13 11:53
抱歉,是我这里验证错了,更改了设置的数值,
这个问题我需要作为bug报给研发来看看。帖子暂时保留处理, ...

好的。
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-4-14 09:38:02
8#
嗯,有新的消息我会在帖子中更新
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2022-6-28 15:14:25
9#
该问题已在5.0.5中修复,请升级至此版本或最新的版本5.1.3。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部