如何在javascript中检查更大的价值?

时间:2013-02-21 22:16:34

标签: javascript

有两个值'a'和'b'。我需要检查a是否大于'b'

如果它是一个大值,它检查更大的值。但这里只有点值的区别。它忽略了点值

var a='20.796';
var b='20.190';
if (parseInt(a) > parseInt(b))
 {
alert("function can work");
return false;
}

4 个答案:

答案 0 :(得分:1)

您将数字解析为integers。你想要理性/实数。使用parseFloat

var a = '20.796';
var b = '20.190';
console.log(parseInt(a,10),parseInt(b,10));
console.log(parseFloat(a),parseFloat(b));

结果:

20 20
20.769 20.190

另外,如果您使用parseInt(string [, radix]),请始终使用radix参数。

此外 - 如果ab是数字,请不要将其值保存在字符串中。保存他们的价值要容易得多:

var a = 20.796;
var b = 20.190;

答案 1 :(得分:0)

它忽略了点值,因为你在if语句条件中将它们解析为整数。你有几个选择。

  1. 将变量定义为浮点数而不是字符串;删除parseInt函数调用。
  2. parseInt来电兑换parseFloat

答案 2 :(得分:0)

将您的数字定义为数字,并删除对parseInt的调用或使用parseFloat。

var a=20.796;
var b=20.190;
if (a > b)
{
    alert("function can work");
    return false;
}

if (parseFloat(a) > parseFloat(b))
{
    alert("function can work");
    return false;
}

答案 3 :(得分:0)

在这里,您的解决方案是将字符串解析为浮点而不是整数。例如:

var a = '20.796',
    b = '20.190';
if (parseFloat(a) > parseFloat(b)) {
    // TODO: .. code ..
}

您的代码现在正在将字符串解析为整数。整数是整数值,不能包含十进制值,同时浮点数或浮点数可以包含十进制值。当您在浮点上调用'parseInt()'时,它会截断(或删除)小数值并保留整个值。这显然不是你想要的。

PS:我猜你是JavaScript的新手,所以我只是希望你好好学习它。 Personnaly,如果你学得很好,我发现JavaScript是一种非常漂亮的语言。