toFixed() 方法可把 Number 四舍五入为指定小数位数的数字。通俗点就是传入的参数是几,那么我们的小数就保留几位。
eg: alert(0.056.toFixed(2));-->0.06
但是使用过程中发现了一个小问题 ,就是0.0056.toFixed(2)结果却为0.00
遂重写toFixed()
代码如下:
//重写toFixed方法
Number.prototype.toFixed=function(len)
{
var tempNum = 0;
var s,temp;
var s1 = this + "";
var start = s1.indexOf(".");
//截取小数点后,0之后的数字,判断是否大于5,如果大于5这入为1
if(s1.substr(start+len+1,1)>=5)
tempNum=1;
//计算10的len次方,把原数字扩大它要保留的小数位数的倍数
var temp = Math.pow(10,len);
//求最接近this * temp的最小数字
//floor() 方法执行的是向下取整计算,它返回的是小于或等于函数参数,并且与之最接近的整数
s = Math.floor(this * temp) + tempNum;
return s/temp;
}
现在再试试alert(0.0056.toFixed(2));结果就为0.01啦!
分享到:
相关推荐
但凡用过js 中的toFix() 方法的, 应该都知道这个方法存在一个小小的BUG。 在IE 下和FF 下对于小数的进位有点不同。 例如( 0.005)在ie 下 toFix(2)=0.00. 在FF 下 toFix(2)=0.01. 这样就会造成数据的差异。 我们...
定义和用法 toFixed() 方法可把 Number 四舍五入为指定小数位数的数字。 语法 NumberObject.toFixed(num)num 必需。规定小数的位数,是 0 ~ 20 之间的值,包括 0 和 20,有些实现可以支持更大的数值范围。如果省略了...
javascript中toFixed使用的是银行家舍入规则。 银行家舍入:所谓银行家舍入法,其实质是一种四舍六入五取偶(又称四舍六入五留双)法。 简单来说就是:四舍六入五考虑,五后非零就进一,五后为零看奇偶,五前为偶应...
javascript 使用toFixed保留两位小数
最近发现JS当中toFixed()方法存在一些问题,采用原生的Number对象的原型对象上的toFixed()方法时,规则并不是所谓的“四舍五入”或者是四舍六入五成双
下面小编就为大家带来一篇JavaScript中Number对象的toFixed() 方法详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
为了解决上述问题,使用了toFixed方法却出现了浮点数小数位以5结尾的四舍五入错误问题; var num = 0.045; console.log(num.toFixed(2)); 0.04 以此为起点,引发了我关于toFixed的一系列探索,终于找到了一些有用的...
最近做的项目涉及到金额的计算,有一种方式就是进行四舍五入的规则进行小数点后面的尾数处理,以前一直以为toFixed方法就是四舍五入的,知道一个用户反馈了金额计算的bug我才如梦初醒(亏了一毛钱),才仔细深究了下...
js中一般使用tofixed与round处理数据四舍五入,那么tofixed与round有什么区别呢?下面小编给大家分享JS使用tofixed与round处理数据四舍五入的区别,需要的朋友参考下吧
0.009.toFixed(2)本该返回0.01的结果,可它却返回了一个0.00,这是这个方法的一个BUG,且这个方法对客户端的JS版本要求有点偏高,至少在IE5.0里这个方法用不起来,所以我写了上面的一段修正代码,并且还解决了这个...
下面小编就为大家带来一篇JS处理数据四舍五入(tofixed与round的区别详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
JS精度计算1、转成整数计算再转换成小数,2、toFixed,3、math.js,4、bignumber.js,5、big.js