1

我有一个输入字段,允许用户放置一个数字值,然后将其转换为字符串值,以允许将逗号添加到一千以上的值。例如,

value = 1,000

当一个数字超过 1000000 时,问题就出现了,我想抛出一个错误。现在我有一个 if 语句。

if( value > 100000){
//throw error
}

问题在于它不起作用,因为添加逗号时该值是一个字符串。说我的值是 1000,001.00 我尝试在值上使用 parseInt 但它变成了 1000 有没有一种方法可以在我执行 if 语句之前使用我的 if 而无需在逗号上进行替换或类似的操作。

谢谢

4

3 回答 3

2

整数值不能包含千位分隔符(例如逗号)。如果你想对一个值进行数学运算

  • 从字符串中删除逗号
  • 将字符串转换为整数
  • 执行操作
  • 根据需要重新插入逗号

如果您愿意重新考虑使用replace(),请查看如何完成此操作的演示。

于 2013-06-17T19:29:45.733 回答
0

这是一个方便的函数,可以将字符串转换为整数进行比较:

function getInt(num){
    var numAsString = num + "",
        numAsInt = parseInt(numAsString.replace(/,/g,""), 10);
    return numAsInt;
}

请注意,我首先强制输入字符串,然后将其解析为数字。这样,即使您出于某种原因向它发送了一个号码,相同的功能也可以工作。使用相同的想法float

function getFloat(num){
    var numAsString = num + "",
        numAsInt = parseFloat(numAsString.replace(/,/g,""));
    return numAsInt;
}

parseFloat请注意(", 10")上缺少基数。

用法:

if (getFloat("1,345,920.5") > 1000000)
    $("#out").append ("String converted to number for comparison!");

http://jsfiddle.net/daCrosby/w6uUY/2/

于 2013-06-17T20:16:03.303 回答
-1

即使您不想这样做,您也可能不得不替换逗号:

num = "1,000"
parseFloat(num.replace(/,/g,""));

http://jsfiddle.net/rpPrh/3/

于 2013-06-17T19:30:02.890 回答