例如,我需要四舍五入6588 => 6000
,1285000 => 1000000
我找不到任何可以實作此目的Math.ceil
的方法。Math.floor
uj5u.com熱心網友回復:
另一個變體只是在字串級別上作業,而不是數字以避免任何浮點問題
function roundToFirst(n) {
return ('' n).split('').map((c, i) => i > 0 ? '0' : c).join('');
}
console.log(roundToFirst(6588)); // 6000
console.log(roundToFirst(1285000)); // 1000000
uj5u.com熱心網友回復:
您可以除以 10 的最高次方,將其取底,然后乘以 10 的最高次方。其他一些答案是操縱字串,但 IMO 這是最簡單和最容易閱讀的代碼。像這樣:
function roundDown(num) {
let powerOfTen = num.toString().length - 1;
num /= (10**powerOfTen);
return Math.floor(num) * (10**powerOfTen);
}
console.log(roundDown(6588)) // => 6000
console.log(roundDown(1285000)) // => 1000000
這與Math.floor()
使用的程序大致相同,如MDN 文章中所述;
uj5u.com熱心網友回復:
您可以將您的數字轉換為字串,然后簡單地附加零以匹配數字的長度。
const roundDown = (num) => {
num = num.toString();
return (num[0] new Array(num.length).join('0'));
}
console.log(roundDown(6588))
console.log(roundDown(0))
uj5u.com熱心網友回復:
一個簡單的方法是取第一個數字和padEnd
其余數字
const roundDown = num => {
num = String(num)
return num[0].padEnd(num.length, "0")
}
console.log(roundDown(6588))
console.log(roundDown(1285000))
參考
padEnd
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/508165.html
標籤:javascript
上一篇:為什么這個函式用下面的表格構建HTML,而它應該在頁面上排在第一位?
下一篇:角度布爾輸入字串