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()` 是 JavaScript 中的一个内置方法,主要用于处理数字的四舍五入,并将结果转换成字符串格式。这个方法广泛应用于需要精确控制小数位数的场景,比如金融计算或者数据展示。 **方法定义与用法** `toFixed...
在JavaScript中,`toFixed()`方法是用来处理浮点数精度问题的一个关键工具,它遵循特定的舍入策略,即银行家舍入法。银行家舍入法是一种公平的舍入策略,旨在避免在大量数据处理中偏向某一边的舍入误差积累。在...
在讨论JavaScript中的toFixed方法时,我们经常会遇到一种情况,即在浮点数运算中由于二进制精度缺失导致计算结果出现不精确的问题。toFixed方法是JavaScript提供的一个字符串方法,用于将数字格式化为保留指定位数的...
在JavaScript中,Number对象提供了许多方法来处理数值,其中之一便是`toFixed()`方法。这个方法的主要作用是将一个数字四舍五入到指定的小数位数,并返回一个字符串形式的数值,而不使用科学记数法。这在需要精确...
在JavaScript中,`toFixed()`方法用于将数字转换为字符串,并保留指定位数的小数。然而,它并不完全遵循我们通常理解的“四舍五入”规则,这可能会导致一些意外的结果。`toFixed()`方法实际上是按照银行家舍入法...
在JavaScript中,`toFixed()`是一个非常实用的方法,用于将数字格式化为字符串,并且保留指定位数的小数。这个方法对于处理需要精确显示小数部分的场景尤其有用,比如金融计算或者数据展示。在给定的标题和描述中,...
这是因为toFixed()方法返回的结果需要精确到小数点后指定的位数,而数字类型无法保证这一点,因为数字在JavaScript中是以IEEE 754浮点数格式存储的,它不能精确地表示所有的小数。而round()方法则直接返回数字类型。...
JavaScript的`Number.prototype.toFixed()`方法是一个用于格式化数字的内置函数,它可以确保结果包含指定的小数位数。例如,`num.toFixed(2)`会返回一个字符串,精确到两位小数。然而,需要注意的是,`toFixed`并不...
为了解决这个问题,JavaScript提供了一个名为`Number.toFixed()`的方法,它可以帮助我们以指定的小数位数格式化数字。`toFixed()`方法接受一个参数,即你希望保留的小数位数。在你的例子中,如果你使用`(0.9996*100)...
在JavaScript编程中,处理浮点数四舍五入的方法主要有两种,即Number对象的toFixed()方法和Math对象的round()方法。这两种方法虽然都能实现四舍五入的效果,但它们在四舍五入的规则和应用场景上存在一定的差异。 ...
最近做的项目涉及到金额的计算,有一种方式就是进行四舍五入的规则进行小数点后面的尾数处理,以前一直以为toFixed方法就是四舍五入的,知道一个用户反馈了金额计算的bug我才如梦初醒(亏了一毛钱),才仔细深究了下...
0.009.toFixed(2)本该返回0.01的结果,可它却返回了一个0.00,这是这个方法的一个BUG,且这个方法对客户端的JS版本要求有点偏高,至少在IE5.0里这个方法用不起来,所以我写了上面的一段修正代码,并且还解决了这个...