javascript float运算的问题;运算结果多出0000000002
来源:互联网 发布:linux系统自带rpm在哪 编辑:程序博客网 时间:2024/04/29 13:31
代码:
<script>
var flt1 = 1.0;
var flt2 = 1.2;
document.write('<div>');
for (var i = 10; i >= 0; i--) {
flt1 +=0.1;
document.write('var a='+flt1+'<br />var b='+flt2+'<br />a+b='+(flt1
+flt2+'<br />'));
};
document.write('</div>');
结果:
</script>var a=1.1
var b=1.2
a+b=2.3
var a=1.2000000000000002
var b=1.2
a+b=2.4000000000000004
var a=1.3000000000000003
var b=1.2
a+b=2.5
var a=1.4000000000000004
var b=1.2
a+b=2.6000000000000005
var a=1.5000000000000004
var b=1.2
a+b=2.7
var a=1.6000000000000005
var b=1.2
a+b=2.8000000000000007
var a=1.7000000000000006
var b=1.2
a+b=2.9000000000000004
var a=1.8000000000000007
var b=1.2
a+b=3.000000000000001
var a=1.9000000000000008
var b=1.2
a+b=3.1000000000000005
var a=2.000000000000001
var b=1.2
a+b=3.200000000000001
var a=2.100000000000001
var b=1.2
a+b=3.3000000000000007
查了很多相关资料说是给加一个toFixed(2)可以解决
但还是不是很理想,锁性就自己写了个函数
{
floatSplit:function(f1){
var f=[0,0];
if (/([0-9]*)\.([0-9]*)/.test(f1)){
f[0] = parseInt(f1.toString().replace(/([0-9]*)\.([0-9]*)/,'$1'));
f[1] = f1.toString().replace(/([0-9]*)\.([0-9]*)/,'$2');
}else{
f[0]=f1;
}
return f;
},
floatAdd:function(f1,f2){
var zf1=this.floatSplit(f1);
var zf2=this.floatSplit(f2);
var zf=[0,0];
zf[0]=zf1[0]+zf2[0];
var ilen = zf1[1].toString().length-zf2[1].toString().length;
var zoo =1;
var iw =0;
if (ilen>0){
iw = zf1[1].toString().length;
while (ilen--)
zoo*=10;
zf2[1]=parseInt(zf2[1])*zoo;
}else{
iw = zf2[1].toString().length;
while (ilen++)
zoo*=10;
zf1[1]=parseInt(zf1[1])*zoo;
}
zf[1]=parseInt(zf1[1])+parseInt(zf2[1]);
ilen = zf[1].toString().length-iw;
if(ilen>0){
zf[0]+= parseInt(zf[1].toString().substr(0,ilen));
zf[1] = zf[1].toString().substr(ilen);
}
return new Number(zf[0]+'.'+zf[1]);
},
}
- javascript float运算的问题;运算结果多出0000000002
- java表达式的字符串运算出结果
- javascript 涉及float的精确加减乘除运算
- javascript中的float运算精度
- JavaScript浮点运算的问题
- JavaScript浮点运算的问题
- float的使用问题和c的一些运算问题
- float运算
- 运算结果的数据类型
- nuttx坑人的float运算
- 关于java中float运算的精度问题
- 解决 double float 数据运算不精确的问题
- double、float数值运算出现精度问题的解决方式
- javascript float数学运算精度控制
- JavaScript的typeof运算符的可能结果有哪些?
- JavaScript的typeof运算符的可能结果
- JavaScript对浮点小数运算结果不精确bug的解决办法
- Javascript 浮点运算问题
- jQuery常用的元素查找方法总结 .
- 藏王特效胶囊健康知识分享
- ubuntu下asterisk安装
- nc63代码报表开发
- jaxb的优点和用法
- javascript float运算的问题;运算结果多出0000000002
- fflush函数的深入理解
- android 键盘 send按钮
- 操作系统面试题总结
- Sublime Text3-Markdown一些知识
- Android开发小知识点
- 数据结构学习18——约瑟夫问题
- Box2D v2.1.0用户手册(5)——动态模块(Dynamics Module)
- Populating Next Right Pointers in each Node