在javascript中解决浮点数加减的问题
来源:互联网 发布:御剑封天源码 编辑:程序博客网 时间:2024/05/16 13:48
最近在开发项目过程中需要处理浮点数加减,发现浮点数加减时,小数位经常得不到正确的结果,会有很多小数位,通过下面的一段JAVASCRIPT代码解决了问题,和大家共享一下:
function accAdd(arg1,arg2){ var r1,r2,m; try{r1=arg1.toString().split(".")[1].length;}catch(e){r1=0;} try{r2=arg2.toString().split(".")[1].length;}catch(e){r2=0;} m=Math.pow(10,Math.max(r1,r2));return (arg1*m+arg2*m)/m;}
这段代码是在网上找到的,虽然很简单,但写的真的非常好。两个try语句,得到了两个要操作的浮点数的小数位长度,Maht.pow是意思是求10的几次方。最终相当于整数相加后再除以小数位的长度,得到正确的结果。
减法的代码就简了,如下,不用解释了:
function accSub(arg1,arg2){ return accAdd(arg1,-arg2); }乘法:
function accMul(arg1,arg2) { var m=0,s1=arg1.toString(),s2=arg2.toString(); try{m+=s1.split(".")[1].length}catch(e){} try{m+=s2.split(".")[1].length}catch(e){} return Number(s1.replace(".",""))*Number(s2.replace(".",""))/Math.pow(10,m) }除法:
function accDiv(arg1,arg2){ var t1=0,t2=0,r1,r2; try{t1=arg1.toString().split(".")[1].length}catch(e){} try{t2=arg2.toString().split(".")[1].length}catch(e){} with(Math){ r1=Number(arg1.toString().replace(".","")) r2=Number(arg2.toString().replace(".","")) return (r1/r2)*pow(10,t2-t1); } }
- 在javascript中解决浮点数加减的问题
- javascript 中浮点数乘法的问题
- JavaScript中浮点数的保留小数位数的问题
- 关于JavaScript中浮点数比较的问题
- Java中解决浮点数精度的问题
- Java中解决浮点数精度的问题
- Java中解决浮点数精度的问题
- 浮点数的加减计算总结
- js 浮点数的加减算法
- JavaScript的浮点数计算问题
- JavaScript 浮点数运算的精度问题
- 浮点数精度丢失问题的解决
- 解决javascript中的浮点数计算不精确问题
- JAVA中浮点数的精度问题
- Java中浮点数的精度问题
- Java中浮点数的精度问题
- JS中浮点数精度的问题
- js中浮点数的精度问题
- ARM入门建议
- HTML5学习(4) 数据的存储(localStorage,sessionStorage)
- 查看Bash嵌套的层级
- JAVA中int、String的类型转换
- jstl标签用法大全
- 在javascript中解决浮点数加减的问题
- const用法详解
- PHP语言中global和$GLOBALS[]的分析
- 菜鸟笔记-8月20日
- OpenCV中 关于hog特征向量的个数的计算
- 如果在执行程序中直接使用本程序导出的python模块,可无需导出成pyd库
- 查找 EXC_BAD_ACCESS 问题根源的方法
- JSF---->其他标签
- OCP-047 REGEXP_INSTR()