`

javascript 加、乘、除 方法

阅读更多

 

javascript 加、乘、除 方法

 

 

//加法函数,用来得到精确的加法结果
//说明: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的乘法结果会有误差,在两个浮点数 相乘的时候会比较明显。这个函数返回较为精确的乘法结果。
// 调用: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);
}


//除法函数,用来得到精确的除法结果
//说明: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);
}

 

 

分享到:
评论

相关推荐

    precise-number:使用JavaScript精确执行加,减,乘和除算法

    使用JavaScript精确执行加,减,乘和除算法 为什么? 用纯JavaScript 1.1*1.1 === 1.2100000000000002是真的! 安装 npm install precise-number --save 方法 const N = require('precise-number'); N.add( n1, n2 ...

    number-precision::rocket:1K微小且快速的库,用于精确地执行加,减,乘和除运算

    数字精度 使用javascript精确执行加,减,乘和除运算为什么0.1 + 0.2 = 0.300000000000000041.0 - 0.9 = 0.099999999999999980.105 . toFixed ( 2 ) = 0.1 // not 0.11安装npm install number-precision --save方法...

    JavaScript高级教程

    2.9.4 乘性运算符..............................................40 2.9.5 加性运算符..............................................41 2.9.6 关系运算符..............................................42 2.9.7...

    JS-加减乘除运算.zip

    带小数点的加法、减法、乘法、除法的计算...当然你也可以改为一个方法,只传入数值参数和计算类型(加、减、乘、除)就能得到结果。 代码有优化,请前往查看:https://blog.csdn.net/yyl262/article/details/107139817

    transformation-matrix-js:JavaScript 的二维变换矩阵实现

    用于 JavaScript 的仿射变换矩阵 (3x3) 类,可执行各种变换,例如旋转、缩放、平移、倾斜、剪切、加、减、乘、除、逆、分解等(包括完整的 HTML 文档)。 它主要用于需要跟踪或创建变换并希望将其永久/手动应用于您...

    basic_maths:基本的数学运算。 加、减、乘、除

    基本数学方法 // requireconst basicMaths = require ( "basic-maths" ) ;// methodsconst add = basicMaths . add ( 1 , 3 ) ; // return 4const substract = basicMaths . substract ( 1 , 2 ) ; // return -1...

    react-calculator:活动ReactNative培训(计算机应用程序)

    界面的编号从0到9,按钮加,减,乘,除,点,清除... 教程 将按钮分成一个小组件 从0到9的数字,加,减,乘,除和清除的字符存储在数组中 当用户单击按钮时,使用事件来处理加,减,乘,除和清除 参考界面

    js-np:js浮点精度

    js-np 使用javascript精确执行加,减,乘和除运算为什么0.1 + 0.2 = 0.300000000000000041.0 - 0.9 = 0.099999999999999980.105 . toFixed ( 2 ) = 0.1 // not 0.11安装npm install number-precision --save方法NP ....

    Calculator

    一个非常简单的科学计算器,可以处理简单的操作,例如加,减,乘和除。 用户可以单击按钮或使用其键盘进行输入。 我在项目期间遇到的问题: 使用Flexbox完全按照我希望的方式订购和设计按钮。 弄清楚if和else与多...

    weChatBigNumber:  微信小程序的大数运算库,支持多进制,大数加减乘除取余和随机数计算

    大整数加(正负均可) 大整数减(正负均可) 大整数乘(正负均可) 大整数除(正负均可,得出的结果为整数,抹去小数部分) 大整数取余(得出的结果恒为正数) 大整数随机数生成 使用方法: 首先把下载好的...

    js小数运算出现多位小数如何解决

    10.22 现在要减去 0.11 结果值又出现了很多的小数 10.110000000000001,然后我就用了 toFixed 方法来过滤小数,但是不知道跟前面那种转换成整数后再执行哪种效率高,好!还是试下再说吧! var date1 = new Date();...

    chuck-bigjs:解决js计算丢失精确度的bug

    解决了js计算丢失精度的问题,稍微修改了big.js实现了连加,连减,连乘,连除。其他的请参考文档 #安装 npm的安装方式 npm install chuck-bigjs #使用方法 import Big from 'chuck-bigjs'; const number = 2; const ...

    additive-animation:添加动画 npm 模块

    附加动画这是一个简单的npm模块,它实现了这里描述的附加动画算法: 或在此视频中: 它将同一对象的并发动画组合...现在调用animate方法开始动画: var fromState = { y: 0 };var toState = { y: 1000 };var duratio

    JS-theGoodParts:来自 Doug Crockford 的 JS - 前端大师的好零件课程的练习

    --基本的二进制加/乘函数 -- 接收一个二元函数并使其可从两次调用中调用 --柯里化 --将二元函数转换为方法 --将方法转换为二元函数 --调用多个二元或一元函数 --将一个函数的返回值作为另一个函数的参数传递 --使一...

    exact-math:精确数学解决了浮点算术运算精度问题

    exact-math库是一组用于数学计算的方法,例如:加,减,乘,除,舍入,下限,上限和幂。 它还允许使用[String]数学公式,例如。 5.55*(7/.33)-2 它适用于大数字和小十进制,并给出精确的结果。 它允许使用[String | ...

    整理后java开发全套达内学习笔记(含练习)

    Overload [java] 方法的重载(不同参数列表的同名方法) [,әuvә'lәud] Override [java] 方法的覆盖(覆盖父类的方法) [,әuvә'raid] polymiorphism[java] 多态 (polymorphism 多形性[,pɒli'mɒ:fizm]) ...

    motorcortex-threejs

    MotorCortex-Threejs MotorCortex是motorcortex库的插件,可以将用作3D ...示例项目公开了开发人员可以使用的三种基本方法:加数字乘数字除数该库仅使用本机js函数,这使其具有极高的性能和稳定性,并且非常小(仅2k

    JS高级程序设计-核心笔记.docx

    3.5.4 乘性操作符 ..................................47 3.5.5 加性操作符 ..................................48 3.5.6 关系操作符 ..................................50 3.5.7 相等操作符 ........................

Global site tag (gtag.js) - Google Analytics