我在Crystal Report 2008中面临一个奇怪的问题
我有一个具有两列的表(mytable)col1
是string
和col2
是float(15)
以下是表中的值
Col1 Col2
AA 5.82518987E-5
BB 5.88383009E-5
在Crystal报表中创建了一个报表,并将mytable值放在报表上,因为col1
它显示正确的值,但对于COL2,它始终显示FOR AA "0.0000582519"
AND FORBB "0.0000588383"
而不是表中的实际值。
这是Crystal报表中的内容,而不是实际值。
Col1 Col2
AA 0.0000582519
BB 0.0000588383
请帮忙
谢谢
CR有一个有趣的限制,它可以显示的最高精度数字值是10个小数位(包括尝试使用该totext()
函数将数字转换为字符串)。这意味着超过该精度的任何浮点数将四舍五入到该小数点后十进制。
因此,事实上,您使用的是精确到15位数字的浮点数,因此快速而又肮脏的解决方案是,将小数点后移至5以上,即可手动将其转换为科学计数法。您可以使用以下方法实现此目的:
totext({table.numeric} * 10^5,10) & "E-5"
显然,这只会将您在Col2中的所有数字不加区别地转换为科学计数法,而不管它们是否需要,因此您可能希望添加一些附加的条件处理。
请注意,如果您使用Google的“ Crystal Reports科学表示法”,可以找到一些自定义函数来为您完成此操作...但是请小心,因为这些函数中有很多都没有考虑到额外的精度,并且会导致结果的准确性降低。精确数字。实际上,第一个匹配项(如何在2008版中以科学计数法显示Number)将使用该totext()
函数在第一行将精度降低到10位。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句