JavaScript本身就有各種進位法
Math.round() 四捨五入至整數
Math.floor() 取小於指定數的最大整數
Math.ceil() 取大於指定數的最小整數
不過眼尖的人都會發現「只有整數」,所以不外乎要多寫幾行程式
JavaScript用固定字元的函數就是無條件捨去法, 直接使用就可以了(計算到小數第一位)
無條件捨去
var BMI = (weight / (height * height);
而JavaScript的四捨五入功能只能用「Math.round()」到整數
可以先乘以10的n次方(視保留位數而定),四捨五入後再除以10的n次方
四捨五入
var BMI = Math.round((weight / (height * height))*10);
BMI = BMI/10;
//or
var BMI = weight / (height * height)
BMI = BMI.toFixed(1);
不過這樣子,每次都要去調整10的倍數, 常使用的話, 就寫成一個function
不保留小數點的四捨五入法
function myRound(value, len){
return Math.round(value * Math.pow(10, len)) / Math.pow(10, len);
}
var BMI = (weight / (height * height);
BMI = myRound(BMI, 1)
除了固定字元外,前面提到的toFixed()可以做為小數第n位的實現方法
會保留小數點的四捨五入法
function myRoundFixed(value, len)
{
return value.toFixed(len);
}