'a' と 'b' の 2 つの値があります。a が 'b' より大きいことを確認する必要があります
大きな値の場合は、より大きな値をチェックします。ただし、ここではポイント値のみの違いです。ポイント値を無視します
var a='20.796';
var b='20.190';
if (parseInt(a) > parseInt(b))
{
alert("function can work");
return false;
}
'a' と 'b' の 2 つの値があります。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;
ここでの解決策は、文字列を整数ではなく浮動小数点として解析することです。例えば:
var a = '20.796',
b = '20.190';
if (parseFloat(a) > parseFloat(b)) {
// TODO: .. code ..
}
現在のコードは、文字列を整数として解析しています。整数は整数値であり、10進値を含めることはできませんが、浮動小数点数または浮動小数点数には10進値を含めることができます。浮動小数点で'parseInt()'を呼び出すと、10進値が切り捨てられ(または削除され)、値全体が保持されます。これは明らかにあなたが探しているものではありません。
PS:JavaScriptは初めてだと思いますので、JavaScriptを習得して頑張ってください。個人的には、JavaScriptを上手に学べば、非常に美しい言語だと思います。
It's ignoring point values because you are parsing them as integers in the if statement conditional. You have a couple options.
Define your numbers as numbers, and remove the call to parseInt or use parseFloat.
var a=20.796;
var b=20.190;
if (a > b)
{
alert("function can work");
return false;
}
or
if (parseFloat(a) > parseFloat(b))
{
alert("function can work");
return false;
}