有两个值'a'和'b'。我需要检查a是否大于'b'
如果它是一个大值,它检查更大的值。但这里只有点值的区别。它忽略了点值
var a='20.796';
var b='20.190';
if (parseInt(a) > parseInt(b))
{
alert("function can work");
return false;
}
答案 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
参数。
此外 - 如果a
和b
是数字,请不要将其值保存在字符串中。保存他们的价值要容易得多:
var a = 20.796;
var b = 20.190;
答案 1 :(得分:0)
它忽略了点值,因为你在if语句条件中将它们解析为整数。你有几个选择。
答案 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是一种非常漂亮的语言。