最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

javascript中的float运算精度实例分析_javascript技巧

来源:懂视网 责编:小采 时间:2020-11-27 20:54:46
文档

javascript中的float运算精度实例分析_javascript技巧

javascript中的float运算精度实例分析_javascript技巧:有人问到一个js问题: 代码如下: var i = 0.07; var r = i*100; alert(r); 结果为什么是7.0000000000000001 查了下资料,其实我们知道JavsScript中,变量在存储时并不区分number和float类型,而是统一按float存储。而javascript
推荐度:
导读javascript中的float运算精度实例分析_javascript技巧:有人问到一个js问题: 代码如下: var i = 0.07; var r = i*100; alert(r); 结果为什么是7.0000000000000001 查了下资料,其实我们知道JavsScript中,变量在存储时并不区分number和float类型,而是统一按float存储。而javascript

有人问到一个js问题:
代码如下:
var i = 0.07;
var r = i*100;
alert(r);

结果为什么是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
附全部测试代码:
代码如下:


测试脚本

文档

javascript中的float运算精度实例分析_javascript技巧

javascript中的float运算精度实例分析_javascript技巧:有人问到一个js问题: 代码如下: var i = 0.07; var r = i*100; alert(r); 结果为什么是7.0000000000000001 查了下资料,其实我们知道JavsScript中,变量在存储时并不区分number和float类型,而是统一按float存储。而javascript
推荐度:
标签: js javascript float
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top