2016-11-26 46 views
2

即時比較km距離,它在上面的例子中說,即時比較位置之間的距離,這些位置以km爲單位。比較JavaScript中的十進制數

9,441.4<1500 

輸出告訴我,9000是低於1萬。在我的情況下,我是否應該只在1500或1500點加上點或逗號,還是不止這些?

+0

','?????? ????是數字還是字符串? –

回答

5

您應該刪除逗號。您不使用JavaScript數字中的千位分隔符。

那麼爲什麼它沒有語法錯誤失敗呢?因爲它的語法是有效的:JavaScript有一個逗號運算符。您的代碼是數字9,然後是逗號運算符,然後是比較441.4 < 1500。逗號運算符是JavaScript的更多...有趣的運算符之一:它評估左邊的操作數(在您的示例中爲9),丟棄結果值,然後評估其右側操作數(在您的示例中爲441.4<1500)並將結果值作爲逗號運算符表達式的值。

你想:

9441.4<1500 
+0

你好,問題是我不能從9,441.4中刪除逗號,它是如何從api輸出的。 – Pedro

+2

@Pedro:這是您唯一的選擇,您必須修正API以輸出有效的JavaScript編號,或將API的結果作爲字符串處理,刪除逗號,然後對其進行評估。如果您遇到麻煩,請在全文中發佈一個新的,單獨的問題,以便人們可以幫助您。但這是* this *問題的答案。 –

+0

@Pedro API將以字符串形式返回值。你將不得不手動解析它。嘗試'var n = parseFloat(apiNum.replace(/ [^ 0-9。]/g,''))' – Rajesh

0

正如T.J. Crowder說,你需要刪除逗號,並且將字符串轉換爲一個浮點數:

$api_input = "9,441.4"; 

$tmp = str_replace(",", "", $api_input); 

$distance = floatval($tmp);