<script>

//加法函数,用来得到精确的加法结果
//说明:javascript的加法结果会有误差,在两个浮点数相加的时候会比较明显。这个函数返回较为精确的加法结果。
//调用:accAdd(arg1,arg2)
//返回值:arg1加上arg2的精确结果
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
}
//给Number类型增加一个add方法,调用起来更加方便。
Number.prototype.add = function (arg){
return accAdd(arg,this);
}
//加法函数,用来得到精确的加法结果
//说明:javascript的加法结果会有误差,在两个浮点数相加的时候会比较明显。这个函数返回较为精确的加法结果。
//调用:accAdd(arg1,arg2)
//返回值:arg1加上arg2的精确结果
function accSub(arg1,arg2){
    var r1,r2,m,n;
    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));
    //last modify by deeka
    //动态控制精度长度
    n=(r1>=r2)?r1:r2;
    return ((arg1*m-arg2*m)/m).toFixed(n);
}
//除法函数,用来得到精确的除法结果
//说明:javascript的除法结果会有误差,在两个浮点数相除的时候会比较明显。这个函数返回较为精确的除法结果。
//调用:accDiv(arg1,arg2)
//返回值:arg1除以arg2的精确结果
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);
}
}
//给Number类型增加一个div方法,调用起来更加方便。
Number.prototype.div = function (arg){
return accDiv(this, arg);
}
//乘法函数,用来得到精确的乘法结果
//说明:javascript的乘法结果会有误差,在两个浮点数相乘的时候会比较明显。这个函数返回较为精确的乘法结果。
//调用:accMul(arg1,arg2)
//返回值: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)
}
//给Number类型增加一个mul方法,调用起来更加方便。
Number.prototype.mul = function (arg){
return accMul(arg, this);
}
var a=0.69;
var b=10;
alert(a*b);//6.8999999999999995
alert((a*100)/10);
</script>

转载于:https://www.cnblogs.com/lcyhappy/p/10138961.html

js中浮点型运算 加减乘除相关推荐

  1. js中浮点数运算精度问题

    在js中,我们有时会遇到计算,通过加减乘除处理某些业务.那么这时候如果不做任何处理,就会出现如下典型的精度丢失问题. console.log(0.1 + 0.2) ; // 0.30000000000 ...

  2. JS中浮点数运算误差处理

    先来个简单的代码片段: > console.log(0.1 + 0.2) > 0.30000000000000004 好奇怪的结果,怎么会是0.30000000000000004呢?难道是 ...

  3. JS中的运算符号(加号)

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  4. js中float运算

    /浮点数加法运算 function FloatAdd(arg1,arg2){ var r1,r2,m; try{r1=arg1.toString().split(".")[1].l ...

  5. 为什么JS中0.1+0.2 != 0.3

    为什么JS中0.1+0.2 != 0.3 在我曾经的一篇< javascript入门教程 (2) >中,讲到JS中数字运算时,我们提到过一个叫做 数字运算中的精度缺失的问题,当时我们只是简 ...

  6. JS中关于0.1+0.2 !==0.3 和0.1+0.7!==0.8的问题

    ** JS中关于0.1+0.2 !==0.3 和0.1+0.7!==0.8的问题 ** 在js中,0.1+0.2不会等于0.3,而是等于: 在js中,0.1+0.7不会等于0.8,而是等于: JS中数 ...

  7. JS中bignumber处理高精度小数运算的使用

    JS中bignumber处理高精度小数运算的使用 安装或引用 bignumber.js的API地址: 静态方法 实例方法 项目开发中发现精度丢失的问题,如0.1+0.2 = 0.30000000000 ...

  8. 关于JS中的浮点数运算

    文章目录 浮点数的存储 浮点数的运算 如何解决 参考 更新:2020/08/21--如何避开JavaScript浮点数计算精度问题(如0.1+0.2!==0.3)讲的很全面 这篇文章起于「查缺补漏」送 ...

  9. 取余运算应用(1)-在js中

    取余运算应用(1)-在js中 1.应用1, 让一个数在一个范围内内循环 // 参考: https://zhuanlan.zhihu.com/p/55210125 // eg.让temp在0~5循环 l ...

最新文章

  1. sqlyog.err文件可以删掉吗_苹果备忘录删掉的东西可以找回来吗?可以恢复被删内容的便签备忘录软件...
  2. Hadoop文件系统元数据fsimage和编辑日志edits
  3. ubuntu/mint 恢复模式 报read-only file system 的解决方法
  4. 5.3 使用tensorflow搭建GoogLeNet网络 笔记
  5. SkyWalking8.1.0 部署和使用
  6. Free tour II SPOJ - FTOUR2 点分治 + 树状数组
  7. 提升应用程序弹性:保障工作负载正常运行
  8. AOP——基于AspectJ的注解来实现AOP操作
  9. 多系统并行服务器,具有分布式并行I/O接口的分布式并行服务器系统的性能研究...
  10. Xlib: connection to :0.0 refused by server解决方法
  11. android 代码混淆 反编译,Android的反编译和代码混淆
  12. 建立城市安防系统 打造更安全智慧城市
  13. 什么是ICMP协议,它的作用是什么?
  14. 基于 Sentinel-2 卫星数据的像元三分法模型
  15. epub格式电子书剖析之一:文档构成
  16. 高博视觉SLAM十四讲--罗德里格斯公式推导
  17. 十家高质量学习网站推荐给所有人
  18. moto Z2 Force ATT 版手机刷安卓8.0系统教程
  19. Jupyter Notebook(Anaconda)【快捷键】
  20. 数云荣登乌镇互联网大会2016中国大数据创新企业50强

热门文章

  1. c++服务器开源项目,开源一个c++ lua服务器框架
  2. 第二届全国计算机安全技能比赛,第2届网络安全技能大赛试题(2018年).PDF
  3. java windows域_域环境中的windows软件安装
  4. Flask的forms类
  5. 3.1 SVM原理入门
  6. 通过java使用ssh访问远程Linux
  7. Java面向对象--小游戏2
  8. 【Vulnhub靶机系列】DC1
  9. 二叉树遍历(附Java实现代码)
  10. Java Calendar使用指南