javascript数值四则运算精度修正函数
2008-10-12 02:17
411 查看
/*
* 四则运算精度修正函数
* m 数值1(number)
* n 数值2(number)
* op 操作符(string)
*/
function fixMath(m, n, op) {
var a = (m+"");
var b = (n+"");
var x = 1;
var y = 1;
var c = 1;
if(a.indexOf(".")>0) {
x = Math.pow(10, a.length - a.indexOf(".") - 1);
}
if(b.indexOf(".")>0) {
y = Math.pow(10, b.length - b.indexOf(".") - 1);
}
switch(op) {
case '+':
case '-':
c = Math.max(x,y);
m = Math.round(m*c);
n = Math.round(n*c);
break;
case '*':
c = x*y
m = Math.round(m*x);
n = Math.round(n*y);
break;
case '/':
c = Math.max(x,y);
m = Math.round(m*c);
n = Math.round(n*c);
c = 1;
break;
}
return eval("("+m+op+n+")/"+c);
}
用法如下:
-----------------------
fixMath(2.3, 1.9, '*')
fixMath(1.98, 1.9, '-')
fixMath(83.50, 74.15, '-')
* 四则运算精度修正函数
* m 数值1(number)
* n 数值2(number)
* op 操作符(string)
*/
function fixMath(m, n, op) {
var a = (m+"");
var b = (n+"");
var x = 1;
var y = 1;
var c = 1;
if(a.indexOf(".")>0) {
x = Math.pow(10, a.length - a.indexOf(".") - 1);
}
if(b.indexOf(".")>0) {
y = Math.pow(10, b.length - b.indexOf(".") - 1);
}
switch(op) {
case '+':
case '-':
c = Math.max(x,y);
m = Math.round(m*c);
n = Math.round(n*c);
break;
case '*':
c = x*y
m = Math.round(m*x);
n = Math.round(n*y);
break;
case '/':
c = Math.max(x,y);
m = Math.round(m*c);
n = Math.round(n*c);
c = 1;
break;
}
return eval("("+m+op+n+")/"+c);
}
用法如下:
-----------------------
fixMath(2.3, 1.9, '*')
fixMath(1.98, 1.9, '-')
fixMath(83.50, 74.15, '-')
相关文章推荐
- javascript数值四则运算精度修正函数
- javascript两个数值简单运算精度修正函数
- javascript 四则运算精度修正函数代码
- JavaScript 四则运算(加减乘除小数运算)避免损失精度
- javascript中对数值计算控制精度的函数
- JavaScript 四则运算(加减乘除小数运算)避免损失精度
- JavaScript 四则运算(加减乘除小数运算)避免损失精度
- javascript中的float运算精度实例分析
- NumPy常用【数值计算】函数总结(2):ufunc运算、矩阵运算
- JavaScript 浮点数及运算精度调整总结,浮点数计算不准确怎么办
- Java中的浮点型进行四则运算精度丢失的问题
- 数学分析 导数的四则运算法则及多个函数的推广
- Javascript 浮点运算精度问题分析与解决
- 用javascript的下拉列表菜单中选中所需要运算的数值来实现简单的加法运算
- javascript浮点数运算修正
- javascript float数学运算精度控制
- javascript 中浮点型数字的运算精度
- 内建函数--类型转换和数值运算函数
- hdu 3000 A Simple Language (逆波兰式计算四则运算表达式数值)