2016-11-26 77 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);