Discuss / JavaScript / JavaScript区分浮点数和整数的吧

JavaScript区分浮点数和整数的吧

Topic source

cpcgdut

#1 Created at ... [Delete] [Delete and Lock User]

javascript区分浮点数和整数的吧, 有parseInt, parseFloat, Float32Array Float64Array, Int32Array, Uint32Array等,我的理解是用Number类统一处理浮点数和整数,数据类型是区分整数和浮点数的。另外如下代码的结果,大于0x7fffffff的移位测试:

<html><head><title>JavaScript Test</title></head> <body><input type="text" id="text1" value="text"></input>   <input type="button" id="btn1" value="test"></input> <div id="div1"></div> <script type="text/javascript"> function test_click() { var a=1; var b = 2.0; text1.value = a+b; // a是Int, b是Double, a+b是Double, // a+b转化为String再赋值给text.value var c = a.constructor.toString(); //div1.innerHTML=c; var str = "<pre>"; b = b<<29; str += b.toString(); b = b<<1; str += "\n"+b; b = b<<1; str += "\n"+b; b = b<<1; str += "\n"+b; b = -2147483648; b = b>>1; str += "\n"+b; b = b>>>1; str += "\n"+b; b = 2147483648*2; str += "\n"+b; b = b>>1; str += "\n"+b; div1.innerHTML = str+"</pre>"; } btn1.onclick=test_click; </script> </body></html>

廖雪峰

#2 Created at ... [Delete] [Delete and Lock User]

语言规范是不区分int和float的:

parseInt('1')===parseFloat('1.0')
// true

但是浏览器执行js时底层区分int/float是为了优化速度


  • 1

Reply