【问题标题】:coldfusion loop variable increment value冷融合循环变量增量值
【发布时间】:2013-12-12 21:09:28
【问题描述】:

我正在努力输出每 24 个月增加一次的分级付款时间表。我在正确增加付款值时遇到了一些麻烦,因此付款 2 是初始付款乘以增量的总和。那么,支付 3 是总支付 2 倍的增量。例如,前几笔付款应如下所示...

付款 1:$274.22 增加付款 $13.64
付款 2:$287.86 增加付款 $15.03
付款 3:$302.18 增加付款 $15.78
付款 4:$317.22 增加付款 $16.57

等等...增量是 0.04975。第一次付款乘以增量+原始付款金额成为付款2。然后,第二次付款乘以增量+付款2成为第三次付款。第三次付款乘以增量+第三次付款变成付款4,以此类推……

我正在处理一个循环,就像这样......

<cfset loopterm = 360 />
<cfset incr = .04975 />
<cfset gradinital = 274.22 />

<cfloop from="1" to="#( loopterm / 24 )#" index="i">
   <cfset newamt = newamt + ( gradinitial * incr ) />
   <cfoutput>
      #dollarformat( newamt )#
   </cfoutput>
</cfloop>

问题是增加的数量总是相同的并且不会毕业。

感谢您提供的任何帮助。

【问题讨论】:

    标签: variables coldfusion increment cfloop


    【解决方案1】:

    我认为你很接近,但你在每次计算中使用相同的 gradinitial 值,所以你的增加值总是相同的。

    <cfset loopterm = 360>
    <cfset incr = .04975>
    <cfset newamt = 274.22>
    
    <cfloop from="1" to="#( loopterm / 24 )#" index="i">
      <cfoutput>
        #dollarformat(newamt)#<br />
      </cfoutput>
      <cfset newamt = newamt + ( newamt * incr ) />
    </cfloop>
    

    这会产生这样的结果集:

    $274.22
    $287.86
    $302.18
    $317.22
    $333.00
    $349.57
    $366.96
    $385.21
    $404.38
    $424.49
    $445.61
    $467.78
    $491.05
    $515.48
    $541.13
    

    它并不完美,但希望它能让你走上正轨。

    【讨论】:

    • 使用&lt;cfset newamt += newamt * incr&gt; 让事情变得更简单
    • 说不完美,是我的想象,还是这是一个无限循环?
    • @DanBracuk 这不是无限的。在这种情况下从 1 到 15。
    • 非常感谢您的意见。我以为我已经尝试在下一次循环迭代之前再次设置该值。让我试一试,我会选择合适的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-25
    • 2017-03-22
    • 1970-01-01
    • 1970-01-01
    • 2015-11-28
    相关资源
    最近更新 更多