获取小计,应用折扣并显示新金额

时间:2018-04-23 21:30:28

标签: javascript jquery

我有下面的代码,但是当美元金额有逗号时我遇到问题,例如$ 1,234.56。当我使用下面的代码时,它会吐出0.00。如果它超过一千,它应该用逗号显示新的小计。

var subtotal = $('.divWithAmount').text().replace("$",""); // Get the subtotal amount and remove the dollar sign
var discount = subtotal * 0.2; // Multiply the amount by 20%
var newSub = subtotal - discount; // Calculate the new subtotal
var newSubtotal = newSub.toFixed(2); // Show only the last two numbers after the decimal
console.log(newSubtotal);

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

它不起作用的主要原因是$('.divWithAmount').text()的返回值属于String

类型

要执行操作,它需要是一个数字,并且为了启用它,您还需要删除逗号,然后使用例如解析它。 parseFloat()



var subtotal = parseFloat($('div').text().replace("$","").replace(",",""));
var discount = subtotal * 0.2; // Multiply the amount by 20%
var newSub = subtotal - discount; // Calculate the new subtotal
var newSubtotal = newSub.toFixed(2); // Show only the last two numbers after the decimal
console.log(parseFloat(newSubtotal).toLocaleString());

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>$51,234.56</div>
&#13;
&#13;
&#13;

如评论所述,我使用toLocaleString更新了我的答案,因此逗号会被添加回来。

以下是本地化最终结果的几种方法:

- Javascript Thousand Separator / string format

- Add thousands separator to auto sum

- convert a JavaScript string variable to decimal/money

答案 1 :(得分:0)

从字符串值中获取数字就像这样

var amount = "$1,234.56";
var doublenumber = Number(amount.replace(/[^0-9\.]+/g,""));

一旦获得号码,您就可以执行所需的操作,它将解决您面临的问题。