有人可以告訴我如何編寫一個函數,如果小數點後四位數字出現在小數點後面,則小數點後面加上0,直到小數點後四位數字長,修剪小數點後四位數字超過四位。這些是字符串。不要任何舍入。僅用於顯示,而不是計算。因此,例如:如何在小於4的小數點後添加零,如果更多,則刪除?
719.843797應該刪除最後兩位數字是719.8437
21.947應該增加一個0爲21.9470
1.3456無變化
有人可以告訴我如何編寫一個函數,如果小數點後四位數字出現在小數點後面,則小數點後面加上0,直到小數點後四位數字長,修剪小數點後四位數字超過四位。這些是字符串。不要任何舍入。僅用於顯示,而不是計算。因此,例如:如何在小於4的小數點後添加零,如果更多,則刪除?
719.843797應該刪除最後兩位數字是719.8437
21.947應該增加一個0爲21.9470
1.3456無變化
使用toFixed
或任何種類的繁殖可能導致四捨五入問題。作爲一個字符串處理數字可以避免它們。下面的函數傳遞給你的所有用例。但這是有點哈克。儘管我不確定是否有更好的方法來滿足您的要求。
function truncate4(x) {
var parts = x.toString().split('.'); // this is not i18n proof :(
var integral = parts[0];
var decimal = parts[1] || ''; // might be integer
return integral + '.' + (decimal + '0000').substr(0, 4)
}
console.log(truncate4(719.843797));
console.log(truncate4(21.947));
console.log(truncate4(1.3456));
這個功能應該與
function arrondir(num){
var str = num.toString();
var index = str.indexOf(".");
var decimal = str.substr(index+1);
var integer = str.substr(0, index);
if (decimal.length < 4)
for (var i = 0; i < 5 - decimal.length; i++)
decimal = decimal.concat("0");
else decimal = decimal.substr(0,4);
return integer.concat(".").concat(decimal);
}
console.log(arrondir(719.84)); // 719.8400
console.log(arrondir(719.84657963657)); // 719.8465
我認爲這真的意味着找到了小數點,然後確定適當的長度,以截斷或墊的字符串。首先填充4個0,然後執行截取到最終的想要的長度。 –