博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
前端知识点
阅读量:4548 次
发布时间:2019-06-08

本文共 881 字,大约阅读时间需要 2 分钟。

关于数值:

根据国际标准IEEE754,64位浮点数格式的64个二进制位中,第0到51位存储有效数字部分(共52位),第52位到62位储存指数部分,第63位是符号位,0表示正数,1表示负数。

因此,JavaScript提供的有效数字的精度为53个二进制位(IEEE 754规定有效数字第一位默认总是为1,不保存在64位浮点数之中,这一位再加上后面的52位,就是总共53位),也就是说,绝对值小于2的53次方的整数,即-(253-1)到253-1,都可以精确表示。

Math.pow(2, 53)// 9007199254740992Math.pow(2, 53) + 1// 9007199254740992Math.pow(2, 53) + 2// 9007199254740994Math.pow(2, 53) + 3// 9007199254740996Math.pow(2, 53) + 4// 9007199254740996

 

指数部分长度是11个二进制位,意味着指数部分最大值是2047,去掉一半给负数,则能表示的最大数为2^1024到2^-1023(开区间)

 

小数点前数字多余21位的或小数点0的个数多余5个的时候会自动转为科学技术法,此时的parseInt会有点小bug,会将转换为科学计数法视为字符串把e及之后的省略掉。

parseInt第二个参数是进制数,只能是2-36之间的数字。第一个数字必须是字符串,否则会先转换成字符串,如果此时第一个数字中有0、0x之类的就会出现问题。

parseInt(0x11, 36) // 43// 等同于parseInt(String(0x11), 36)parseInt('17', 36)

x本来应该被翻译成33,但是测试被当成0x前缀所以出了问题。

 

参考:

http://javascript.ruanyifeng.com/grammar《JavaScript标准参考教程(alpha)》阮一峰

转载于:https://www.cnblogs.com/web-Timer/p/5464473.html

你可能感兴趣的文章
C++语言 文件对话框的调用
查看>>
运算符
查看>>
4553: [Tjoi2016&Heoi2016]序列
查看>>
CF 959 E. Mahmoud and Ehab and the xor-MST
查看>>
java读取文件夹下所有文件并替换文件每一行中指定的字符串
查看>>
[转]OData/WebApi
查看>>
[转]高颜值、好用、易扩展的微信小程序 UI 库,Powered by 有赞
查看>>
[转]SQL Server如何启用xp_cmdshell组件
查看>>
[转]微擎应用笔记3--manifest.xml文件使用说明
查看>>
Codeforces 1000C Covered Points Count 【前缀和优化】
查看>>
python高效读取文件、文件改写
查看>>
gulp
查看>>
pgsql查询优化之模糊查询
查看>>
[转]-Gradle使用手册(三):构建任务
查看>>
ExtJS下拉树
查看>>
android 调用系统相机录像并保存
查看>>
BW系统表的命名规则
查看>>
Asp.Net在IE10下出现_doPostBack未定义的解决办法 LinkButton
查看>>
《CLR via C#》Part2之Chapter5 基元类型、引用类型和值类型(一)
查看>>
1-9 RHEL7-文件权限管理
查看>>