本文功能:
浮点数0.1 + 0.2 不等于 0.3的前置知识点
我们知道js存储number类型的数据采用的是IEEE 754双精度(64位),我们了解到对应存储原理,才能具体解释0.1 + 0.2 不等于 0.3
文章插图
描述
位数
位置
sign
符号,0表示正,1表示负
1bit
63
exponent
指数部分
11bit
52-62
fraction
小数部分
52bit
0-51
计算公式A:
文章插图
文章插图
看完公式我们举个栗子:
var a = 2
具体的思路: 将10进制转换为二进制,二进制使用科学计数法表示 。
根据公式即可得出结果
文章插图
最终结果:
文章插图
一、十进制转二进制
整数:
1.将十进制数用2整除法,得到商和余数
2. 继续用商用2整除法,直到商小于1
3. 从下到上依次写余数便得到转化后的二进制
例如: 9转二进制
文章插图
浮点数:
- 将数拆为整数和小数部分
- 整数用整数整除2法则
- 小数部分乘2 ,取出对应的整数部分
- 执行3点,直到值小数部分等于0或者达到所求有效位数
- 从上到下每次乘二的整数部分即为转化后的小数部分二进制
整数部分二进制为:1001
小数部分转化过程:
文章插图
由上图可知转化为二进制的小数是 01 1011 1011...(1011的无限循环)
最终的转化为: 1001.011001(这是保留6位小数)
- 二进制转十进制
文章插图
浮点数:
1.将数拆为整数和小数部分
2.整数用整数计算方式
3.小数按照下图计算
例如二进制数:0.111
文章插图
- 十进制和十六进制数制转换 十进制和十六进制如何转换
- 葡萄酒品牌口碑 葡萄酒品牌与价格表
- 葡萄酒神奇的健康长寿力量 葡萄酒与健康
- 与别克GL8相比新在哪里 新老别克gl8对比
- 韩国总统请六大财阀掌门人吃饭 韩国财阀与总统
- 【时尚一点】露脐上衣搭配紧身牛仔裤,性感与时尚感两兼得,小姐姐娇俏可爱
- 【时尚一点】美女希拉里·达芙,淡粉色针织裙,把优雅与自信展现得淋漓尽致
- 微信转账与支付宝转账有什么区别 微信转账和支付宝转账有什么区别吗
- 与你亲近黏人的宠物鸟 粘人的宠物鸟
- 拿什么与飞利浦竞争 飞利浦的竞争对手是