我有下面的代码,但是当美元金额有逗号时我遇到问题,例如$ 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);
感谢您的帮助!
答案 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;
如评论所述,我使用toLocaleString
更新了我的答案,因此逗号会被添加回来。
以下是本地化最终结果的几种方法:
- Javascript Thousand Separator / string format
答案 1 :(得分:0)
从字符串值中获取数字就像这样
var amount = "$1,234.56";
var doublenumber = Number(amount.replace(/[^0-9\.]+/g,""));
一旦获得号码,您就可以执行所需的操作,它将解决您面临的问题。