1.加法方式

function numAdd(num1: number, num2: number): number{
let baseNum: number, baseNum1: number, baseNum2: number;
try {
baseNum1 = num1.toString().split(".")[1].length;
} catch (e) {
baseNum1 = 0;
}
try {
baseNum2 = num2.toString().split(".")[1].length;
} catch (e) {
baseNum2 = 0;
}
baseNum = Math.pow(10, Math.max(baseNum1, baseNum2));
return (num1 * baseNum + num2 * baseNum) / baseNum;
};
2.减法方式

/**
* @param num1被减数
* @param num2减数
*/
function numSub(num1: number, num2: number): number{
let baseNum: number, baseNum1: number, baseNum2: number;
try {
baseNum1 = num1.toString().split(".")[1].length;
} catch (e) {
baseNum1 = 0;
}
try {
baseNum2 = num2.toString().split(".")[1].length;
} catch (e) {
baseNum2 = 0;
}
baseNum = Math.pow(10, Math.max(baseNum1, baseNum2));
return (num1 * baseNum - num2 * baseNum) / baseNum;
};

例如:numAdd1(283.34,141.67);

function accAddOwn(one,two ,str){
//转化为字符串
one = ''+one
two = ''+two
str = '+'
//切割成整数部分和小数部分
var oneStr = one.split('.')
var twoStr = two.split('.')
// 处理参数一或二为整数的情况
if(!oneStr[1]){
oneStr[1] = ''
}
if(!twoStr[1]){
twoStr[1] = ''
}
var length=null
//比较小数部分的长度,以确定剥离小数点后放大的倍数
var oneFloatLength = oneStr[1].length
var TwoFloatLength = twoStr[1].length
if(oneFloatLength>TwoFloatLength){
length = oneFloatLength
twoStr[1]=twoStr[1].padEnd(length,'0')
} else if(TwoFloatLength>oneFloatLength){
length = TwoFloatLength
twoStr[1]=oneStr[1].padEnd(length,'0')
} else{
length = TwoFloatLength
}
// 拼接成处理后的数字
var oneBig = oneStr[0]+oneStr[1]
var twoBig = twoStr[0]+twoStr[1]

//根据运算符决定运算后缩小的倍数
var result= null
switch(str){
case '+' :;
case '-' : result = eval(oneBig+str+twoBig)/(10**length)
break;
case '*' : result = eval(oneBig+str+twoBig)/(10**(length*2))
break;
case '/' : result = eval(oneBig+str+twoBig)
}
return result; }

是用decimal.js吧

npm install --save decimal.js

// 加法

new Decimal(a).add(new Decimal(b)) 

// 减法

new Decimal(a).sub(new Decimal(b))

// 乘法

new Decimal(a).mul(new Decimal(b))

// 除法

new Decimal(a).div(new Decimal(b))

转载于:https://www.cnblogs.com/hr-cmbc/p/11332228.html

上一篇的js处理失真数据存在问题换了种方法相关推荐

  1. java mysql防重复提交_防止数据重复提交的6种方法(超简单)!

    有位朋友,某天突然问磊哥:在 Java 中,防止重复提交最简单的方案是什么? 这句话中包含了两个关键信息,第一:防止重复提交:第二:最简单. 于是磊哥问他,是单机环境还是分布式环境? 得到的反馈是单机 ...

  2. getclass方法_防止数据重复提交的6种方法(超简单)!

    有位朋友,某天突然问磊哥:在 Java 中,防止重复提交最简单的方案是什么? 这句话中包含了两个关键信息,第一:防止重复提交:第二:最简单. 于是磊哥问他,是单机环境还是分布式环境? 得到的反馈是单机 ...

  3. js给对象动态添加属性的2种方法

    js给对象动态添加属性的2种方法 需求: 要给每个课程添加一个判断鼠标是否hover 分析: 因为数据是动态渲染的,所以需要动态的给他添加一个flag标记,就得在数据渲染之前先拿到,然后再添加一个自己 ...

  4. JS实现星星评分功能实例代码(两种方法)

    转载自   JS实现星星评分功能实例代码(两种方法) 一.方法1 1.用到图片 2.结构和样式 <!DOCTYPE html> <html lang="en"&g ...

  5. 去除html重复的元素 js,js数组中去除重复值的几种方法

    在日常开发中,我们可能会遇到将一个数组中里面的重复值去除,那么,我就将我自己所学习到的几种方法分享出来 去除数组重复值方法: 1,利用indexOf()方法去除 思路:创建一个新数组,然后循环要去重的 ...

  6. [转]asp.net导出数据到Excel的三种方法

    原文出处:asp.net导出数据到Excel的几种方法(1/3) .asp.net导出数据到Excel的几种方法(2/3).asp.net导出数据到Excel的几种方法(3/3) asp.net导出到 ...

  7. [转]导出数据到Excel的几种方法

    [转]导出数据到Excel的几种方法 [转]C#导出到EXCEL     [原] http://community.csdn.net/Expert/topic/4570/4570895.xml?tem ...

  8. 原生js与jQuery显示隐藏div的几种方法

    原生Js与jQuery显示隐藏div的几种方法 简介:本文将会讲解,如何使用原生的JS和jquery来实现对于这个div盒子的隐藏 js 方式一 首先是进行js演示和讲解. 首先是display的方法 ...

  9. Excel中数据汇总常用的几种方法,sumif、合并计算、数据透视表

    Excel中数据汇总常用的几种方法: 如图,我们想要求出每个人的数量是多少,可以用3种方法. 第一种: 函数sumif(),首先把名字列出来,可以用删除重复项,其次在名字的后面用=sumif()来实现 ...

最新文章

  1. 标准化工作取得新突破 窄带物联网商用指日可待
  2. Android知识点 - 收藏集 - 掘金
  3. window 任务管理器
  4. 使用python远程登录
  5. asp.net的常用控件
  6. hdu 5833 Zhu and 772002 (高斯消元)
  7. python语言-Python 条件语句
  8. ImageRanger 全萤幕检视操作说明
  9. VC下揭开“特洛伊木马”的隐藏面纱
  10. Spring Boot接支付宝第三方支付(沙箱)
  11. matlab编译后方交会,后方交会MATLAB程序实习报告.docx
  12. 阿里云| 阿里云汇总
  13. Kali 开机启动慢解决方案(用时56秒)
  14. web下载文件夹的解决方案
  15. SQL Server 排序函数 ROW_NUMBER和RANK 用法总结
  16. 【蓝桥杯省赛学习题Java】算式问题
  17. ATF(Arm Trusted Firmware)/TF-A Chapter 04 Authentication Framework
  18. 墨者靶场--手工注入mysql数据库
  19. 简洁易用的记账小程序——微点记账
  20. java后台设置cookie到浏览器,总是差八小时的问题解决

热门文章

  1. 2022-2028年中国数字化制造产业研究及前瞻分析报告
  2. 2022-2028年中国钽酸锂单晶行业市场调查分析及投资发展潜力报告
  3. axmath公式编辑器
  4. GPU、AI芯片技术市场分析
  5. 智能驾驶操作系统OS
  6. Json文件解析(下
  7. 2021年大数据常用语言Scala(八):基础语法学习 循环
  8. Android 打包 aar文件的流程以及aar的引用
  9. 微信小程序页面之间数据传递
  10. select 和 order by