添加和减去负小数时,ASP MVC视图中的奇怪逻辑行为

时间:2015-07-28 01:54:58

标签: asp.net-mvc math

所以我的ASP MVC View逻辑中发生了一个奇怪的行为。我知道在视图中使用逻辑并不是最好的做法,但这肯定不会导致这种情况发生吗?

我有一个环绕集合的foreach循环,显示总成本,原始值和节省的金额。但是使用以下代码,VALUE变量是错误的,但总调整和价格调整是正确的。

@foreach (var option in Model.ProductAttributes.Single().Values)
{
  <div class="row">
    <div class="small-5 columns">
      <h3>@option.Name</h3>
    </div>
    <div class="small-2 columns text-center costCol">
      <h3><strong>@{ var total = (option.Cost + option.PriceAdjustmentValue).ToString("C");}@total</strong></h3>
    </div>
    <div class="small-2 columns text-center savingsCol">
      <ul>
        <li>Value @{ var value = (option.Cost - option.PriceAdjustmentValue).ToString("C");}@value</li>
        <li>Savings @option.PriceAdjustment</li>
      </ul>
    </div>
    <div class="small-3 columns text-center">
      <a href="#" class="button">Buy</a>
    </div>
  </div>
  if (!option.Equals(last)) { 
    <hr class="noTopMarginHr" />
  }
}

所以我调试了正在发生的事情,并且出于某种原因,在值行中,option.Cost正在通过option.PriceAdjustment添加,然后是minused。因此,举例来说,如果我的成本是80,而我的PriceAdjusted是-40,那么Value将会达到160 $,而不是120 $。

如果我将值行更改为:

<li>Value @{ var value = ((option.Cost + option.PriceAdjustmentValue) - option.PriceAdjustmentValue).ToString("C");}@value</li>

然后它工作正常,但这似乎是错误的。

这里发生了什么?我错过了什么?

0 个答案:

没有答案
相关问题