尝试使用replace() 将, 替换为nothing,然后parseFloat() 以获取浮点数。从 OP 中的变量来看,似乎也可能有小数,所以parseInt() 在这种情况下可能无法正常工作(小数点后的数字将被剥离)。
在replace() 中使用正则表达式来消除, 的每次出现。
var a = parseFloat('1,700.00'.replace(/,/g, ''));
var b = parseFloat('500.00'.replace(/,/g, ''));
var sum = a+b;
即使您的数字是像1,700.55 这样的小数,这也应该会给您正确的结果。
如果我按照你的问题标题,你需要一个整数。为此,您可以使用parseInt(string, radix)。它可以在没有radix 的情况下工作,但指定它总是一个好主意,因为您永远不知道浏览器的行为方式(例如,请参阅评论@Royi Namir)。此函数会将字符串四舍五入为最接近的整数值。
var a = parseInt('1,700.00'.replace(/,/g, ''), 10); //radix 10 will return base10 value
var b = parseInt('500.00'.replace(/,/g, ''), 10);
var sum = a+b;
请注意,parseFloat() 中不需要基数,它将始终返回十进制/base10 值。此外,它将去除小数点后末尾的任何多余零(例如:17500.50 变为 17500.5 和 17500.00 变为 17500)。如果您需要始终保留 2 位小数,请附加另一个函数 toFixed(decimal places)。
var a = parseFloat('1,700.00'.replace(/,/g, ''));
var b = parseFloat('500.00'.replace(/,/g, ''));
var sum = (a+b).toFixed(2); //change argument in toFixed() as you need
// 2200.00
@EpiphanyMachine 提供了另一种替代方法,它需要您将每个值相乘,然后再除以100。如果您将来想更改小数位,这可能会成为一个问题,您必须更改每个变量的乘法/除法因子。使用toFixed(),您只需更改参数即可。但请记住,toFixed() 将数字改回 为字符串,这与 @EpiphanyMachine 解决方案不同。所以你将是你自己的法官。