複製代碼代碼如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Javascript四捨五入(Math.round()與Math.pow())</title>
<script type="text/javascript">
//Math.round(x);傳回數字最接近的整數,四捨五入取整數,即捨去小數部分
function f(){
alert(Math.round(123.567));
alert(Math.round(123.456));
}
//Math.pow(x,y);傳回底數的指定次冪
//傳回以x的y次冪,等同於x的y次冪的數值表達式
//如果pow的參數過大而造成浮點溢出,回傳Infinity
function f1(){
alert(Math.pow(2,10));//2的10次方等於1024
alert(Math.pow(1024,0.1));//1024的0.1次方等於2
alert(Math.pow(99,9999));//溢出則回傳Infinity
}
/*Javascript設定要保留的小數位數,四捨五入。
*ForDight(Dight,How):數值格式化函數,Dight要格式化的數字,How要保留的小數位數。
*這裡的方法是先乘以10的倍數,然後去掉小數,最後再除以10的倍數。
*/
function ForDight(Dight,How){
Dight = Math.round(Dight*Math.pow(10,How))/Math.pow(10,How);
return Dight;
}
function f2(){
alert(ForDight(12345.67890,3));//保留三位小數
alert(ForDight(123.99999,4));//保留四位小數
}
//另外一種四捨五入的方法,原理一樣。
//裡面的兩個參數:num就是要轉換的資料。 n為要轉換的位數
//cheng(123.456,2);//保留兩位小數
function cheng(num,n){
var dd=1;
var tempnum;
for(i=0;i<n;i++){
dd*=10;
}
tempnum = num*dd;
tempnum = Math.round(tempnum);
alert(tempnum/dd);
}
</script>
</head>
<body>
<input type="button" value="round" onclick="f();" />
<input type="button" value="pow" onclick="f1();" />
<input type="button" value="設定要保留的小數位數,四捨五入" onclick="f2();" />
<input type="button" value="cheng" onclick="cheng(123.456,2);" />
</body>
</html>