解决javascript四舍五入不准确

 1 function roundFixed(num, fixed) {
 2     var pos = num.toString().indexOf('.'),
 3         decimal_places = num.toString().length - pos - 1,
 4         _int = num * Math.pow(10, decimal_places),
 5         divisor_1 = Math.pow(10, decimal_places - fixed),
 6         divisor_2 = Math.pow(10, fixed);
 7     return Math.round(_int / divisor_1) / divisor_2;
 8 }
 9 
10 console.log(roundFixed(3.135,2));//-> 3.14
11 console.log(roundFixed(2.135,2));//-> 2.14
12 console.log(roundFixed(0.955,1));//-> 1
13 console.log(roundFixed(0.955,2));//-> 0.96
14 console.log(roundFixed(1.955,2));//-> 1.96
15 console.log(roundFixed(1.955,1));//-> 2

参考:http://bbs.csdn.net/topics/391957876  perhapschen的回答

posted @ 2017-05-31 21:09  来自海上的鱼  阅读(909)  评论(0编辑  收藏  举报