js中小数的取值为近似值,可能比实际值大,也可能比实际值小,进行“四舍五入”得到的
例如:alert(0.1+0.2);值为0.300000004 alert(0.2+0.7);值为1.899999999
js中类似于offsetwidth等都是计算后的值,而且按四舍五入的计算方法计算得到,
例如:在css中,100.4px;则在js中oDiv.offsetWidth的值为100;
写一个求和的函数sum,达到下面的效果
1
2
3
4
5
6
7
8
9
|
// Should equal 15 sum(1, 2, 3, 4, 5); // Should equal 0 sum(5, null , -5); // Should equal 10 sum( '1.0' , false , 1, true , 1, 'A' , 1, 'B' , 1, 'C' , 1, 'D' , 1, 'E' , 1, 'F' , 1, 'G' , 1); // Should equal 0.3, not 0.30000000000000004 sum(0.1, 0.2); |
1
2
3
4
5
6
7
|
function sum() { var nResult = 0; for ( var i = 0, l = arguments.length; i < l; i++) { nResult += window.parseFloat(arguments[i]) || 0; } return nResult.toFixed(3) * 1000 / 1000; } |