我在2008年水晶报告中面临一个奇怪的问题
我有一个表格(mytable),其中两列col1
为string
而col2
为float(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
请帮忙
由于
答案 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位数。