js,二进制浮点数和四舍五入的问题
2015-08-20 14:01
633 查看
javascript 通过浮点数形式只能表示出有限的个数,即:在JavaScript中使用实数的时候,常常只是真实值的一个近似表示。
JavaScript采用的是IEEE-754浮点数表示法(现在使用的的编程语言大多数多是使用该表示法)。IEEE-754浮点数表示法:是一种二进制表示法,它可以精确的表示分数,比如1/2,1/4,1/8,……,1/1024,但是我们一般使用的是分数多是十进制的1/10,
1/100等,以至于二进制表示法不能精确的表示类似于0.1这样简单的数值。
JavaScript中的数值有足够的精度,可极其近似于0.1,由于JavaScript的浮点数的二进制表示法不能精确的表示出类似0.1这样的数值就有可能出现类似下例的误差:
所以一般现实中尽量使用大整数,比如尽量使用最小单位:使用‘分’代替‘元’。
JavaScript使用 toFixed(要保留的小数位数) var a = 10.12345; a.toFixed(3);
JavaScript采用的是IEEE-754浮点数表示法(现在使用的的编程语言大多数多是使用该表示法)。IEEE-754浮点数表示法:是一种二进制表示法,它可以精确的表示分数,比如1/2,1/4,1/8,……,1/1024,但是我们一般使用的是分数多是十进制的1/10,
1/100等,以至于二进制表示法不能精确的表示类似于0.1这样简单的数值。
JavaScript中的数值有足够的精度,可极其近似于0.1,由于JavaScript的浮点数的二进制表示法不能精确的表示出类似0.1这样的数值就有可能出现类似下例的误差:
eg1: x=.3-.2 eg2: y=.2-.1 可能造成 x==y;//返回false的情况 在计算时,x和y返回的只是 近似于0.1的值,由于四舍五入的误差造成x==y返回false的情况. 注:.3-0.2 返回的是0.099 999 999 999 999 98 这样的数值极近似0.1的数值。
所以一般现实中尽量使用大整数,比如尽量使用最小单位:使用‘分’代替‘元’。
JavaScript使用 toFixed(要保留的小数位数) var a = 10.12345; a.toFixed(3);
相关文章推荐
- javascript草稿
- js 字符串转化成数字
- 在arcgis javascript 的sdk中 地图自动居中和放大 到一个graphic的位置.并且自动打开InfoWindow
- 【JavaScript】DOM结构介绍和方法预览
- javascript form 第22节
- 【JavaScript】javaScript基础知识回顾
- Backone js,requreJs整合及代码解析
- javascript document对象 第21节
- javascript之url转义escape()、encodeURI()和encodeURIComponent()
- 纯粹吐槽
- 使用live delegate on解决js后装html故障问题
- JS 换行写法
- 手把手教你:jsp中无法使用My97DatePicker的解决方法
- JSP JSTL fn标签
- extjs grid的相关属性配置
- JSP JSTL 判断List 大小
- js实现鼠标点击文本框自动选中内容的方法
- 如何格式化被压缩的JS代码以方便阅读
- JavaScript/VBScript脚本程序调试(Wscript篇)
- js实现文字在按钮上滚动的方法