有两个值'a'和'b'。我需要检查 a 是否大于 'b'
如果它是一个很大的值,它检查更大的值。但这里仅在点值上有所不同。它忽略点值
var a='20.796';
var b='20.190';
if (parseInt(a) > parseInt(b))
{
alert("function can work");
return false;
}
有两个值'a'和'b'。我需要检查 a 是否大于 'b'
如果它是一个很大的值,它检查更大的值。但这里仅在点值上有所不同。它忽略点值
var a='20.796';
var b='20.190';
if (parseInt(a) > parseInt(b))
{
alert("function can work");
return false;
}
您将数字解析为整数。你想要有理数/实数。使用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
另外,radix
如果您使用parseInt(string [, radix])
.
此外 - 如果a
和b
是数字,不要将它们的值保存在字符串中。相反,保存它们的值要容易得多:
var a = 20.796;
var b = 20.190;
它忽略了点值,因为您在条件 if 语句中将它们解析为整数。你有几个选择。
将您的数字定义为数字,并删除对 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;
}
在这里,您的解决方案是将字符串解析为浮点数而不是整数。例如:
var a = '20.796',
b = '20.190';
if (parseFloat(a) > parseFloat(b)) {
// TODO: .. code ..
}
您的代码现在将字符串解析为整数。整数是整数值,不能包含十进制值,同时浮点数或浮点数可以包含十进制值。当您在浮点上调用 'parseInt()' 时,它会截断(或删除)十进制值并仅保留整个值。这显然不是你要找的。
PS:我猜你是 JavaScript 新手,所以我只想祝你学习好运。就个人而言,如果你学得好,我发现 JavaScript 是一门非常漂亮的语言。