javascript中的float运算精度
来源:互联网 发布:wow客户端优化怎样用 编辑:程序博客网 时间:2024/06/10 03:41
有人问到一个js问题:
结果为什么是7.0000000000000001?
查了下资料,其实我们知道JavsScript中,变量在存储时并不区分number和float类型,而是统一按float存储。而javascript使用IEEE 754-2008 标准定义的64bit浮点格式存储number,按照IEEE 754的定义: http://en.wikipedia.org/wiki/IEEE_754-2008
decimal64对应的整形部分长度为10,小数部分长度为16,所以默认的计算结果为“7.0000000000000001”,如最后一个小数为0,则取1作为有效数字标志。
类似地,我们可以想像,1/3的结果应该是0.3333333333333333。
那么如何校正这个值呢?
可以用以下方法:
一、parseInt
var r4=parseInt(i*100);
二、Math.round
var r2=Math.round((i*100)*1000)/1000;
以上两种方法都可以得到7
附全部测试代码:
邀月注:本文版权由邀月和CSDN共同所有,转载请注明出处。
助人等于自助! 3w@live.cn
助人等于自助! 3w@live.cn
- javascript中的float运算精度
- javascript float数学运算精度控制
- javaScript中Float精度计算
- java中的float double精度丢失
- java中的double和float数据精度
- float精度
- 关于java中float运算的精度问题
- js中float类型加减乘除运算精度问题
- Java Float类型 减法运算时精度丢失问题
- Java Float类型 减法运算时精度丢失问题
- Java Float类型 减法运算时精度丢失问题
- Java Float类型 减法运算时精度丢失问题
- Java浮点类型(Double/Float)运算精度问题
- double、float数值运算出现精度问题的解决方式
- Java Float类型 减法运算时精度丢失问题
- JavaScript浮点数运算 -- 精度问题
- javascript浮点数运算精度问题
- JavaScript浮点运算的精度问题
- 驾驭黑鸟SR-71
- 获得SqlMapClient 通用类
- sizeWithFont in MultiThread Crash!
- 补码、原码、反码-移位操作 编解码
- vsftpd的553 Could not create file 错误
- javascript中的float运算精度
- StateMachineWorkflowInstance 类
- alsa 音频库的移植
- 完成端口
- ThreadPool用法
- oracle中连接单引号
- J2ME 记录管理系统
- Why all of the passengers ran away?
- C++左值与右值之间共同与不同点解析