方法一:
在JS中四舍五入的函数 toFixed(n) , n为要保留的小数位数。
n为0~20,当n超过20的时候,JS会出错。
var d=10.005;
var f=d.toFixed(2);
alert(f);
bug:
如果小数点前和要截取的前一位都是0时,不会按常理截取。
var h=0.07
h.toFixed(1)的值为0.0
如果要修改这个缺陷,可以把js中的Number类型的toFixed方法重写。
例如:
Number.prototype.toFixed = function(d)
{
var s=this+"";if(!d)d=0;
if(s.indexOf(".")==-1)s+=".";s+=new Array(d+1).join("0");
if (new RegExp("^(-|\\+)?(\\d+(\\.\\d{0,"+ (d+1) +"})?)\\d*$").test(s))
{
var s="0"+ RegExp.$2, pm=RegExp.$1, a=RegExp.$3.length, b=true;
if (a==d+2){a=s.match(/\d/g); if (parseInt(a[a.length-1])>4)
{
for(var i=a.length-2; i>=0; i--) {a[i] = parseInt(a[i])+1;
if(a[i]==10){a[i]=0; b=i!=1;} else break;}
}
s=a.join("").replace(new RegExp("(\\d+)(\\d{"+d+"})\\d$"),"$1.$2");
}if(b)s=s.substr(1);return (pm+s).replace(/\.$/, "");} return this+"";
};
这样就可以修复Number类型的toFixed方法。
方法二:
之前一直在用这个js自带的toFixed函数来进行四舍五入的操作,可是,在实际使用过程中却遇到了问题。
比如
Javascript代码
-
var money=0.00542;//0.006;
-
alert(Number(money).toFixed(2));
-
//0.00
var money=0.00542;//0.006; alert(Number(money).toFixed(2)); //0.00
可以看出上面的结果是错误的,下面的方法通过巧妙的使用Math.round函数,完全可以解决数值很小时的精度问题。
Javascript代码
-
var money=0.00542;//0.006;
-
alert(Number(money).toFixed(2));
-
-
function round2(number,fractionDigits){
-
with(Math){
-
return round(number*pow(10,fractionDigits))/pow(10,fractionDigits);
-
}
-
}
-
alert(round2(money,2));//0.01
var money=0.00542;//0.006; alert(Number(money).toFixed(2)); function round2(number,fractionDigits){ with(Math){ return round(number*pow(10,fractionDigits))/pow(10,fractionDigits); } } alert(round2(money,2));//0.01
round 方法
返回与给出的数值表达式最接近的整数。
Math.round(number)
必选项 number 参数是要舍入到最接近整数的值。
说明
如果 number 的小数部分大于等于 0.5,返回值是大于 number 的最小整数。否则,round 返回小于等于 number 的最大整数。
分享到:
相关推荐
本文为大家介绍下Javascript中的四舍五入Math.round()与Math.pow()的使用,感兴趣的朋友不要错过
js四舍五入-保留两位小数 js四舍五入-保留两位小数 js四舍五入-保留两位小数
在某些行业,计算结果不是四舍五入,而是要求四舍六入五单双,且小数位数不固定,只明确有效位数。本程序就是应此需求而设计,输入原始数字和有效位数要求,则可返回按四舍六入后的结果。
Javascript 源码 内置 函数 使用
如何使得js能够将数字进行四舍五入,根据需求来取相应的位数
javascript 内置对象 使用
本文实例讲述了js实现四舍五入完全保留两位小数的方法。分享给大家供大家参考,具体如下: //四舍五入保留2位小数(若第二位小数为0,则保留一位小数) function keepTwoDecimal(num) { var result = parseFloat...
主要介绍了js四舍五入数学函数round使用实例,需要的朋友可以参考下
直接看代码吧 参数一:要保留小数位的数字 参数二:要保留的位数 代码如下:function FormatNumber(srcStr,nAfterDot){ var srcStr,nAfterDot; var resultStr,nTen; srcStr = “”+srcStr+””;...
特殊数据的js四舍五入问题 2.885 7131.0 两数相乘:20572.934999999998 四舍五入后结果是:20572.93怎么回事啊? [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]比较好的解决方法: [Ctrl+A 全选 注:如需引入...
代码如下: <!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN”> <html> <head> <title>floatDecimal.html</title> <meta http-equiv=”keywords” content=... charset
原生 javascript 中四舍五入的函数 toFixed(n) , n为要保留的小数位数。 (0<= n <=20) 代码如下: var num=1.0999; console.log(num.toFixed(20)); http://jsfiddle.net/14x0vhu6/ 输出值不是预想的1.0999...
四舍六入五单双在适合试验和银行系统中比较普遍使用 希望能够帮到你
C#.NET,JAVASCRIPT数字进行四舍五入保留两位小数
此方法返回一个数四舍五入为最接近的整数的值。 语法 Math.round( x ) ; 下面是参数的详细信息: x: 一个数字 返回值: 返回数字四舍五入为最接近的整数的值。 例子: <html> <head> <title>...
主要介绍了JavaScript里四舍五入函数round用法,实例分析了round函数的使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下