在Angular JS中计算销售价格

Calculate Sale Prices in Angular JS

本文关键字:计算 销售价格 JS Angular      更新时间:2023-09-26

所以我有一个简单的表单,它提供了产品成本、加价和最终销售价格。

但是,angularjs没有为我提供的内容返回正确的值。

考虑以下内容:

I have a product that costs me $50.00 to get in my store.
To make a profit, I mark this product up 30% or .30.
So my final sale price to my customers would be $65.00

我们使用一个简单的数学计算,如下所示:

Item Cost + (Item Cost x Markup Percentage) = Price 
$50.00 + ($50.00 x .30) = $65.00
在我的HTML中,我有一个简单的表单
<form>
  <input type="text" ng-model="pr.cost" class="form-control" placeholder="Cost" />
  <input type="text" ng-model="pr.markup" class="form-control" placeholder="Markup %" />
  <input type="text" class="form-control" placeholder="{{pr.type}} Sale" value="{{pr.cost+(pr.cost*pr.markup)|currency}}" readonly/>
</form>

当我把上面给出的数字输入这个表格时,我得到以下结果:

Cost: $50
Markup: .30
Sale Price: $5,015.00

那可是30%的加价啊!我到底做错了什么?

对于喜欢小提琴的人,我在这里创建了一个JSFiddle:http://jsfiddle.net/p20roLLu/

这是因为JavaScript将pr.cost作为字符串。它看到(pr.cost*pr.markup)并自动转换为整数类型,但pr.cost将其丢弃,因此它添加"50"+"15"并返回"5015"。这可以通过强制JavaScript将pr.cost解释为整数来解决,一种简单的方法是乘以或除以1:

{{(pr.cost*1)+(pr.cost*pr.markup)|currency}}

这不是一个完美的或干净的解决方案,但它至少会工作。

看起来问题是+。在你得到的那一刻:

50 + (50*.3) = 50+15 -> 5015 -> $5,015

As you can

value="{{pr.cost*1+(pr.cost*pr.markup)|currency}}"

对于一个cleear版本,你应该使用parseInt():

如何在Angular表达式中解析String到Int ?