大于数字的javascript号码不会返回正确的结果

时间:2016-08-15 16:42:30

标签: javascript

在下面的代码中我想说IF data.transferMoney大于results[0].money然后返回false ELSE返回true,但它不会返回正确的结果

if (Number(results[0].money) < Number(data.transferMoney))
    return false;
else
    return true;

或此代码:

if (parseInt(results[0].money) < parseInt(data.transferMoney))
    return false;
else
    return true;

results[0].moneydata.transferMoney是字符串

results[0].money是180476,data.transferMoney是12

2 个答案:

答案 0 :(得分:0)

您的数据不好。以下代码段符合您的要求并按预期工作。我还添加了一个isNaN检查,以满足您可能希望在自己的代码中查看的错误数据要求。

var results = [{money: '180476'}];
var data = {transferMoney: '12'};

if(isNaN(results[0].money) || isNaN(data.transferMoney))
   alert('bad data');

if (Number(results[0].money) < Number(data.transferMoney))
    alert('false');
else
    alert('true');

答案 1 :(得分:0)

好吧,你不应该从你自己的服务器回复解析数字。这就是你在做什么。当你处理钱时,不要解析。

如果从服务器返回看起来很糟糕怎么办?'10000000 $很多,你没有这笔款项!'

让我们看看

parseInt('10000000$ is way to much, you dont have that sum on account!')
//1000000

我建议直接将用户输入的数字与服务器号码进行比较。这种情况如果服务器上的某些东西出错了 - 你不会告诉你的用户对他们的帐户撒谎:)