Crystal 报告舍入问题

Crystal Reports Rounding Issues

我正在努力在 Crystal 报告中创建一个报告,该报告汇总了同一年激活和停用的客户。我的报告看起来像这样:

<table border=1>
  <tr>
    <td>Customer</td>
    <td>Create Date</td>
    <td>End Date</td>
    <td>Days Active</td>
    <td>Months Billed</td>
    <td>Invoice Amount</td>
    <td>Average Invoice Amount</td>
    <td>3 Year Lost Revenue</td>
    <td>5 Year Lost Revenue</td>
  </tr>
  <tr>
    <td>Customer 1</td>
    <td>11/20/2014</td>
    <td>08/05/2015</td>
    <td>258</td>
    <td>9</td>
    <td>00.00</td>
    <td>4.44</td>
    <td>00.00</td>
    <td>466.67</td>
  </tr>
</table>

基本上我遇到的问题是 3 年和 5 年的收入损失没有正确舍入。

我将解释我是如何计算所有内容的,也许有人可以解释为什么这两列四舍五入很奇怪。

好的,客户、创建日期和结束日期都是从数据库中提取的 table。

活跃天数 = 结束日期 - 创建日期
计费月数 = 上限(天数 Active/30)

对于发票金额,我有一个基本公式:
if isnull(table 中的列,我从中提取)然后 0
else 运行 包含发票的列的总计

平均发票金额 = 发票金额 / 开票月数

3 年收入损失 =(36*平均发票金额)- 发票金额
5 年收入损失 = (60*平均发票金额) - 发票金额

我在 table 中用于发票金额、平均发票以及 3 年和 5 年收入的数字是我得到的实际数字。因此,开票月份、发票金额和平均发票金额都是正确的。
但如你所见
($244.44 * 36) - 2200 美元 = 6599.84 美元
($244.44 * 60) - $2200 = $12466.40

这两列的格式也相同,但不知何故它们的舍入方式不同...知道我正在做什么才能像这样舍入吗?

谢谢!

您无需应用新的逻辑来解释为什么会发生这种情况,您只需通过格式化字段来格式化十进制字段。 Crystal 报告具有根据字段的数据类型格式化字段的功能。

下面这段文字摘自link

实际上,您可以 select 文本框中的字段,右键单击并设置格式。但是,这里有一个更好的计算百分比的方法。

  1. 将数字字段放在报表上。
  2. 右击并格式化。
  3. 在“数字”选项卡上,单击“自定义”按钮。
  4. 在“数字”选项卡上,设置小数位数。
  5. 在货币符号选项卡上,启用货币符号,将位置设置在数字的右侧,并将“$”更改为“%”。

这将为您提供百分号,而无需使用文本框。

Check this link too for visualizing

https://www.webucator.com/blog/2010/05/crystal-reports-rounding-function/

您可能忘记舍入 Average Invoice Amount 的中间值。 2200/9=244.4444444...,但您的手动计算仅使用 244.44 - 结果肯定会有所不同。