parseInt()和parseFloat()之间的区别

可能重复:
parseInt()和parseFloat()之间的行为差​​异

var box = $('.box'), fontSize = parseInt(box.css('font-size'), 10) + 5; $('button').on('click', function() { box.animate({fontSize: fontSize}); }); 

// ..

  var box = $('.box'), fontSize = parseFloat(box.css('font-size'), 10) + 5; $('button').on('click', function() { box.animate({fontSize: fontSize}) }); 

有什么区别..

 **fontSize = parseInt(box.css('font-size'), 10);** **fontSize = parseFloat(box.css('font-size'), 10);** 

并且为什么要将10作为上下文…请帮助?

JavaScript提供了两种将非数字原语转换为数字的方法:parseInt()和parseFloat()。 您可能已经猜到,前者将值转换为整数,而后者将值转换为浮点数。

字符串中包含的任何数字文字也正确转换,因此字符串“0xA”正确转换为数字10.但是,字符串“22.5”将转换为22,因为小数点是整数的无效字符。 一些例子:

var iNum1 = parseInt(“1234blue”); //返回1234

var iNum2 = parseInt(“0xA”); //返回10

var iNum3 = parseInt(“22.5”); //返回22

var iNum4 = parseInt(“blue”); //返回NaN

parseInt()方法也有一个基数模式,允许您将二进制,八进制,hex或任何其他基本字符串转换为整数。 基数被指定为parseInt()的第二个参数,因此解析hex值的调用如下所示:

var iNum1 = parseInt(“AF”,16); //返回175

当然,这也可以用于二进制,八进制甚至十进制(这是默认模式):

var iNum1 = parseInt(“10”,2); //返回2

var iNum2 = parseInt(“10”,8); //返回8

var iNum2 = parseInt(“10”,10); //返回10

如果十进制数包含前导零,则最好将基数指定为10,这样您就不会意外地得到八进制值。 例如:

var iNum1 = parseInt(“010”); //返回8

var iNum2 = parseInt(“010”,8); //返回8

var iNum3 = parseInt(“010”,10); //返回10

在此代码中,两行都将字符串“010”解析为数字。 第一行认为字符串是八进制值,并以与第二行相同的方式解析它(将基数指定为8)。 最后一行指定10的基数,因此iNum3最终等于10。

使用parseFloat()时的另一个区别是字符串必须表示十进制forms的浮点数,而不是八进制或hex。 此方法忽略前导零,因此八进制数0908将被解析为908,hex数0xA将返回NaN,因为x不是浮点数的有效字符。 parseFloat()也没有基数模式。

使用parseFloat()的一些示例:

var fNum1 = parseFloat(“1234blue”); //返回1234

var fNum2 = parseFloat(“0xA”); //返回0

var fNum3 = parseFloat(“22.5”); //返回22.5

var fNum4 = parseFloat(“22.34.5”); //返回22.34

var fNum5 = parseFloat(“0908”); //返回908

var fNum6 = parseFloat(“blue”); //返回NaN

阅读更多 , 阅读更多

类似问题在这里阅读更多

首先,只有parseInt接受第二个参数。 它叫做基数。 它代表要使用的数字系统。 在示例中,您可以将数字转换为二进制或hex代码。

parseFloat只接受一个参数。