js toFixed方法示例

发布时间:2020-06-16编辑:脚本学堂
有关js中toFixed方法的用法,把 Number 四舍五入为指定小数位数的数字,传入的参数是几,小数就保留几位,需要的朋友参考下。

javascript中toFixed() 方法可把 Number 四舍五入为指定小数位数的数字。
传入的参数是几,那么我们的小数就保留几位。

例子:
 

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

附,toFixed方法
定义和用法
toFixed() 方法可把 Number 四舍五入为指定小数位数的数字。

语法
NumberObject.toFixed(num)

参数 描述
num 必需。规定小数的位数,是 0 ~ 20 之间的值,包括 0 和 20,有些实现可以支持更大的数值范围。如果省略了该参数,将用 0 代替。

返回值
返回 NumberObject 的字符串表示,不采用指数计数法,小数点后有固定的 num 位数字。如果必要,该数字会被舍入,也可以用 0 补足,以便它达到指定的长度。如果 num 大于 le+21,则该方法只调用 NumberObject.toString(),返回采用指数计数法表示的字符串。
抛出
当 num 太小或太大时抛出异常 RangeError。0 ~ 20 之间的值不会引发该异常。有些实现支持更大范围或更小范围内的值。
当调用该方法的对象不是 Number 时抛出 TypeError 异常。

实例
在本例中,将把数字舍入为仅有一位小数的数字:
Show the number 13.37 with one decimal:
 

<script type="text/javascript">
var num = new Number(13.37);
document.write (num.toFixed(1))
</script>

输出:
Show the number 13.37 with one decimal:
13.4

例子:
 

<html>
<head>
<script type="text/javascript">
function displaynum()
{
var num = new Number(13.37);
alert(num.toFixed(1));
}
</script>
</head>
<body>
Show the number 13.37 with one decimal:
<form>
<input type="button" value="Show!" onclick="displaynum()" >
</form>
</body>
</html>