有兩個值'a'和'b'。我需要檢查一個大於'b'如何在javascript中檢查更大的值?
如果它是一個很大的值,它檢查更大的值。但這裏的差異只在點值上。它忽略點值
var a='20.796';
var b='20.190';
if (parseInt(a) > parseInt(b))
{
alert("function can work");
return false;
}
有兩個值'a'和'b'。我需要檢查一個大於'b'如何在javascript中檢查更大的值?
如果它是一個很大的值,它檢查更大的值。但這裏的差異只在點值上。它忽略點值
var a='20.796';
var b='20.190';
if (parseInt(a) > parseInt(b))
{
alert("function can work");
return false;
}
它忽略了點值,因爲您將它們解析爲if語句條件中的整數。你有幾個選項。
您將您的號碼解析爲integers。你需要理性/實際的數字。使用parseFloat
:
var a = '20.796';
var b = '20.190';
console.log(parseInt(a,10),parseInt(b,10));
console.log(parseFloat(a),parseFloat(b));
結果:如果你使用parseInt(string [, radix])
20 20 20.769 20.190
另外,請始終使用radix
說法。
此外 - 如果a
和b
是數字,請不要將它們的值保存在字符串中。它更容易保存它們的值:
var a = 20.796;
var b = 20.190;
將您的數字定義爲數字,並移除對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;
}
'parseFloat()'不採取第二個參數;沒有基數是真的需要。 – KarimSaNet 2013-02-21 22:24:19
@KarimSaNet這就是複製粘貼將得到你。大聲笑。的確,parseFloat只需要一個參數。 – 2013-02-21 22:35:12
在這裏,你的解決方案是解析字符串作爲浮動點,而不是整數。例如:
var a = '20.796',
b = '20.190';
if (parseFloat(a) > parseFloat(b)) {
// TODO: .. code ..
}
您的代碼現在正在將字符串解析爲整數。整數是整數值,不能包含十進制值,同時浮點數或浮點數可以包含十進制值。當你在浮點上調用'parseInt()'時,它會截斷(或刪除)十進制值並保持整個值。這顯然不是你想要的。
PS:我猜你是新來的JavaScript,所以我只想祝你學習它的好運氣。 Personnaly,如果你學習的很好,我會發現JavaScript是一門非常美麗的語言。
爲什麼要將它們定義爲字符串,如果你想用數字來比較它們呢? – thatidiotguy 2013-02-21 22:18:11
嘗試使用'parseFloat'代替 – JaredMcAteer 2013-02-21 22:18:29
使用'如果(parseFloat(一)> parseFloat(B))'...這將工作的優良您的具體情況 – 2013-02-21 22:20:19