2017-09-14 46 views
-3

最近,我遇到了这样一个问题:Javascript如何转换?

"78.1133" <= "271.7895"

为什么它的结果呢?以及如何暗示转换工作在比较运算符(>, <, >= , <=)

谢谢。

+5

你为什么认为这有什么与转换?它只是字符串比较 – gefei

+1

你需要比较两个数字或字符串吗? –

回答

1

仅当两个比较实体的类型不同时发生转换...比较两个字符串时,不会进行转换。字符串比较是逐个字符进行的。在你的例子中,7高于2,所以它返回false。

如果您有存储在字符串两个数字,需要比较它们的数值,你将需要使用parseFloat()

+1

我会用'parseFloat'亲自去 – Phil

+0

你是对的!我想我不会玩浮游物太多:) – Salketer

0

字符串比较lexicographic。值的排列方式基于它们在词典中出现的方式。

因此,"aaa"小于"aab",作为第一字符串的所有字典位置的总和小于所述第二串的总和(想象在字母表相加的位置 - a是第一个字母,所以它是1,因此"aaa"3,而对于"aab",它将是4)。

按字典顺序排列,"1"小于"2",因为它出现在前两位。因此,例如,"11"小于"3",因为再一次我们可以想象加起来的位置,除了这次他们是数字位置而不是字母。使用数字位置,"1"1,因为它是第一个,因此"11"的总和为2,而"3"3,因为它是第三个,因此它更大。

这就是发生在这里。没有暗示也没有转换。