Crystal Reports Rounding问题

时间:2015-10-06 18:04:26

标签: crystal-reports crystal-reports-2010 crystal-reports-xi rounding

我正在制作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>$2200.00</td>
    <td>$244.44</td>
    <td>$6600.00</td>
    <td>$12466.67</td>
  </tr>
</table>

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

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

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

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

对于发票金额,我有一个基本上说的公式:
如果isnull(我正在拉动的表中的列)然后是0
否则使用发票中的列运行总计

平均发票金额=发票金额/月结算

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

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

这两个列的格式也相同,但不知怎的,它们都是不同的四舍五入...任何想法我正在做什么让它像这样圆?

谢谢!

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

您可以通过格式化字段来简单地格式化十进制字段,而不是应用新逻辑来解释原因。 Crystal报表具有根据数据类型的字段格式化字段的功能。

以下文字取自link

实际上,您可以在文本框中选择字段,右键单击并格式化。但是,这是做百分比的更好方法。

  1. 将数字字段放在报告上。
  2. 右键单击并格式化。
  3. 在“数字”选项卡上,单击“自定义”按钮。
  4. 在“数字”选项卡上,设置小数位数。
  5. 在货币符号选项卡上,启用货币符号,将头寸设置在数字的右侧,然后更改&#34; $&#34;到&#34;%&#34;。
  6. 这将为您提供百分号,而无需使用文本框。

    Check this link too for visualizing

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