Crystal Report中的分数问题

时间:2014-05-11 04:19:09

标签: crystal-reports

我在2008年水晶报告中面临一个奇怪的问题

我有一个表格(mytable),其中两列col1stringcol2float(15)

以下是表格中的值

Col1       Col2
AA         5.82518987E-5
BB         5.88383009E-5

在水晶报表中创建了一个报表,并在col1的报表上显示了mytable值,但是对于COL2,它始终显示FOR AA "0.0000582519" AND FOR BB "0.0000588383"而不是实际值表

这是Crystal报告中的内容而不是实际值。

Col1       Col2
AA        0.0000582519
BB        0.0000588383

请帮忙

由于

1 个答案:

答案 0 :(得分:1)

CR有一个有趣的限制,它可以显示的最高精度数值是10位小数(这包括尝试使用totext()函数将数字转换为字符串)。这意味着超过该精度的任何浮点数将在十进制小数点处舍入。

由于这一点以及您使用精确到15位的浮点数的事实,快速而肮脏的解决方案是通过将小数位移到5来手动转换为科学记数法。您可以完成这有类似的东西:

totext({table.numeric} * 10^5,10) & "E-5"

显然,无论是否需要,这都会不加区分地将Col2中的所有数字转换为科学记数法,因此您可能希望添加一些额外的条件处理。

请注意,如果您使用Google" Crystal Reports科学记数法"你可以找到一些自定义函数来做到这一点......但是要小心,因为很多这些函数都没有考虑到额外的精度,并且会导致数字不那么精确。实际上,第一个匹配(HOw to display Number in Scientific Notation in version 2008)将使用totext()函数将第一行中的精度降低到10位数。