【问题标题】:cdbl in crystal reports is giving wrong results in decimal points水晶报告中的 cdbl 给出的小数点结果错误
【发布时间】:2013-07-23 04:13:29
【问题描述】:

朋友们,

这是水晶报表9中的公式。

cdbl({nrconsolidated.collamt})/100000.000

nrconsolidated 表有 9 条记录。

其中一条记录的 collamt 值为 154250。

但在水晶报告输出中显示为 1.543 而不是 1.542。 我只想要 3 个小数点。我不知道错误来自哪里? 在水晶报告中,我单击了该 collamt 字段并通过查看 browseData 选项来检查数据……它显示为 154250。 我该如何解决这个问题?它以 4 个小数点显示正确的值,但我只想要 3 个小数点。

谢谢

【问题讨论】:

    标签: crystal-reports


    【解决方案1】:

    下面的代码会在计算完成后截断结果,并输出到小数点后 3 位。这适用于 Crystal 语法,也适用于 Basic - 我相信这在两者中都很常见。

    截断(cdbl({nrconsolidated.collamt})/100000.000,3)

    在字段中设置小数点 1.000,四舍五入 0.001 将显示您想要的内容。

    【讨论】:

    • 那么我可以将这个截断用于用户需要 3 个小数点的所有类型的计算吗?
    • 我想在报告页脚总结这个..truncate(cdbl({nrconsolidated.collamt})/100000.000,3) 我怎样才能总结这个结果...如果我加上 sum(truncate (cdbl({nrconsolidated.collamt})/100000.000,3))...给出错误。再次......结果是错误的......我手动计算了总和(截断(cdbl({nrconsolidated.collamt})/100000.000,3)),该值为2621250但是当我将其除以100000.000时给出结果由于 26.212 缺少 .50...所以唯一的解决方案是显示为 4 个小数点?
    • @sathyguy 对我来说,现在听起来好像它会说该字段无法求和,这是正确的。如果可能,第一种选择是在数据中执行此操作,因为这样可以更轻松地计算。另一个是手动运行总计的 3 公式技巧。不幸的是,我没有打开包含这些的报告,但它涉及将值添加到带有计数器的数组中。每次递增计数器 +1 并在需要时重置该值,以及计数器。您将需要在 1000 条记录时重新调整。科技共和国有一个例子[链接]goo.gl/mWCJq[/link]
    • @sathyguy,我不知道你的数据来自哪里,所以我假设它是 MSSQL,也许是错误的。您可以使用 round() 函数。 round(field,3,1) 应该是正确的。您也可以在报告中使用 SQL 表达式进行尝试。那时,求和可能会更幸运。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多