求助 关于水晶报表精度丢失问题,哥哥些帮帮忙啊,紧急

虾米树 2010-10-11 11:29:15
问题描述:
我的报表邦定了一个dataSet,其中一个字段为double型,在打开报表前,我看了我的dataTable中的值为:82345678901234.12
是正确的,我需要的值。报表打开后,此字段值变为:823456789012345.12,小数点后2位精度丢失了。 而如果是比这个小一位的数,比如8234567890123.12,就能正确的表示为:82345678901234.12。
请教下大虾,是不是我相关设置有什么问题,或者是有没有其他解决办法。

另:可能有些兄弟要说变成string再传给报表表示,但是由于此字段需要合计,而且合计后的值也一样存在精度丢失问题,所以我不希望通过变成string的方法来解决。呵呵
...全文
121 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
阿泰 2010-10-19
  • 打赏
  • 举报
回复
实际上直接转换成文本也是不支持的,比如

82345678901234512

Totext之后仍是82345678901234500

东莞寻香苑 2010-10-19
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 luols 的回复:]
的确如泰哥所说
看来只有以字符串的形式的传给报表了,汇总的话可以在外部先处理好,然后把处理后的数据PUSH给水晶报表,而报表只是把最终数据给SHOW出来。。
[/Quote]

同意楼上的

写个公式把那个字段转化为字符串,在需要显示的位置(把公式拖过去,就好了)
虾米树 2010-10-11
  • 打赏
  • 举报
回复
对不起,打错了,修改如下:
问题描述:
我的报表邦定了一个dataSet,其中一个字段为double型,在打开报表前,我看了我的dataTable中的值为:82345678901234.12
是正确的,我需要的值。报表打开后,此字段值变为:823456789012345.00,小数点后2位精度丢失了。 而如果是比这个小一位的数,比如8234567890123.12,就能正确的表示为:82345678901234.12。
请教下大虾,是不是我相关设置有什么问题,或者是有没有其他解决办法。

另:可能有些兄弟要说变成string再传给报表表示,但是由于此字段需要合计,而且合计后的值也一样存在精度丢失问题,所以我不希望通过变成string的方法来解决。呵呵
阿双2009 2010-10-11
  • 打赏
  • 举报
回复
你这边的小数点后两位不都是 .12 吗?
阿双2009 2010-10-11
  • 打赏
  • 举报
回复
的确如泰哥所说
看来只有以字符串的形式的传给报表了,汇总的话可以在外部先处理好,然后把处理后的数据PUSH给水晶报表,而报表只是把最终数据给SHOW出来。。
虾米树 2010-10-11
  • 打赏
  • 举报
回复
多谢luols哥哥和阿泰哥哥的帮助,是变态客户要求处理这种极端数据,我们就只有处理了,郁闷。
看来这个问题确实比较棘手阿,再等一天,看有人能提供其他方法解决此类问题不,比如绕过这个问题的解决方法也可以。
虾米树 2010-10-11
  • 打赏
  • 举报
回复
多谢luols哥哥和阿泰哥哥的帮助,是变态客户要求处理这种极端数据,我们就只有处理了,郁闷。
看来这个问题确实比较棘手阿,再等一天,看有人能提供其他方法解决此类问题不,比如绕过这个问题的解决方法也可以。
阿泰 2010-10-11
  • 打赏
  • 举报
回复
刚才翻了下帮助,没有确切地说明对精度支持的程度,从症状上来看,水晶报表是最多支持15位数字精度
也就是包含小数点,仅支持16位。

举个例子,即使不包含小数点,

82345678901234512

最终在报表中显示是82345678901234500,也就是只显示了15位,后两位虽然显示了,但是没有“精度”可言了。

不太清楚是什么场景下出了这么大的数字,是不是可以把这个数字除以10000或100000之类的一个分母再进行处理。

4,815

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 图表区
社区管理员
  • 图表区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧