javascript 浮点数的精确计算 转载----

var calc = function(num1,operator,num2,len){
	var numFixs = function(num){
		var arr = num.toString().split('.');
		return parseInt(arr.join(''));
	}
	switch(operator){
		case '+':
			return ( numFixs(num1) + numFixs(num2) )/ Math.pow(10,len);
		break;
		case '-':
			return ( numFixs(num1) - numFixs(num2) )/ Math.pow(10,len);
		break;
		case '*':
			var tmp = ( numFixs(num1) * numFixs(num2) )/ Math.pow(10,len) / Math.pow(10,len);
			return parseFloat(tmp.toFixed(len));
		break;
		case '/':
		if (num2 == 0) {return 'Error'}
			return ( numFixs(num1) / numFixs(num2) )/ Math.pow(10,len);
		break;
	}
}

//下面是例子
calc(2.01,'-',2.11 ,2);//两个两位小数
calc(2.1,'-',2.111111 ,2);//不同位数的小数
calc(1,'-',2.111111 ,2);//整数和小数
calc(5,'-',2.111111 ,3);//整数和小数

  转载至:http://soulteary.com/2012/12/26/javascript-%E6%B5%AE%E7%82%B9%E6%95%B0%E7%9A%84%E7%B2%BE%E7%A1%AE%E8%AE%A1%E7%AE%97.html

posted @ 2013-01-08 23:20  akulubala_  阅读(107)  评论(0)    收藏  举报