javascript中一个小数与其他数字进行或运算,为什么结果是一个整数?
var a = 1.21;
a.toString(2) //1.00110101110000101000111101011100001010001111010111
var b = 0;//0
a|b//结果为1
按理说
1.21 1.00110101110000101000111101011100001010001111010111
0.00 0.00000000000000000000000000000000000000000000000000
-------------------------------------------------------------------------
|(或运算) 1.00110101110000101000111101011100001010001111010111
结果不应该还是1.21吗?为什么是1呢 ?求指教
事实上,JS的所有数据都是 double 型的,也就是64位浮点型,并按照IEEE754标准进行保存。
但是在做位运算的时候要对两个数进行
toInt32
进行类型转换(>>>
是toUint32
), 然后按照32位整型的bits 进行位运算,运算结果也是按照Int32
或是Uint32
进行解释,再转换成double具体可一参考 ES标准:http://www.ecma-international...