常见浮点数比较
console.log((0.1 + 0.2) == 0.3); // false console.log((0.1 + 0.2) === 0.3); // false console.log(0.1 + 0.2); // 0.30000000000000004
parseInt
接受两个参数,第一个参数是要转换的字符串(忽略空白);第二个参数是基数。
parseInt(' 12', 10); // 12 parseInt('12**', 10); // 12 parseInt('12.34', 10); // 12 parseInt(12.34, 10); // 12
例子:
parseInt(1000000000000000000000.5, 10); // 1
parseInt
的第一个类型是字符串,所以会将传入的参数转换成字符串,也就是 String(1000000000000000000000.5)
的结果为 '1e+21'
。parseInt
并没有将 'e'
视为一个数字,所以在转换到 1
后就停止了
String(0.000008); // '0.000008' String(0.0000008); // '8e-7'
悲剧:
parseInt(1/0, 19); // 18 parseInt(false, 16); // 250 parseInt(parseInt, 16); // 15 parseInt("0x10"); // 16 parseInt("10", 2); // 2