我正在尋找一種方法,如果值大于 4,則用逗號從輸入中洗掉最后一個數字。
例子:
值:13,314556 應該是 -> 13,3145。
有沒有辦法只洗掉所有內容,然后是這個數字的最后 4 位數字?
let value = 13,314556
let result= value.split(',')[1].trim();
if(result.length > 4){
...
}
uj5u.com熱心網友回復:
toFixed()
您可以呼叫toFixed()將數字格式化為小數位數。
請參閱MDN 檔案以了解 toFixed()
根據上述檔案中給出的示例修改:
function myFormat(x) {
return Number.parseFloat(x).toFixed(4);
}
// expected output: "13.3146" because of rounding
console.log(myFormat(13.314556));
// expected output: "0.0040"
console.log(myFormat(0.004));
// expected output: "123000.0000"
console.log(myFormat('1.23e 5'));
如果您不想四舍五入,只需更精確并剪裁結果字串的末尾即可。
function myFormat(x) {
return Number.parseFloat(x).toFixed(6).replace(/\d\d$/, '');
}
// expected output: "13.3145", will not do rounding
console.log(myFormat(13.314556));
如果您正在使用貨幣或進行類似的重要計算,請考慮使用像decimal.js這樣的庫。
uj5u.com熱心網友回復:
另一種方法是乘以 10000,將其取底,然后除以 10000。
let value = 13.314556;
value=Math.floor(value*10000)/10000;
或者,如果您想以編程方式控制位數,您可以使用以下內容:
let value = 13.314556;
value=Math.floor(value*Math.pow(10, 4))/Math.pow(10, 4);
uj5u.com熱心網友回復:
也許您正在尋找切片功能。
let value = "13,314556"
let result= value.split(',')[1].trim();
if(result.length > 4){
console.log(result.split('').slice(0,4).join(''))
}
uj5u.com熱心網友回復:
我會用slice和 join方法來做
Slice 用于將字串切成你想要的長度
加入以根據需要重新創建號碼
編輯
我添加了檢查逗號是否在數字中以及具有所需長度的引數
function splitNumber(num, nbAfterComa) {
const number = num.toString()
if(!number.includes('.')){
return number
}
const splitedValue = number.split('.')
splitedValue[1] = splitedValue[1].trim().slice(0, nbAfterComa);
return nbAfterComa > 0 ? splitedValue.join(',') : splitedValue[0]
}
console.log(splitNumber(13.314556, 4))
console.log(splitNumber(13.3, 4))
console.log(splitNumber(13.314556, 1))
console.log(splitNumber(13.314556, 0))
console.log(splitNumber(13, 8))
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/465476.html
標籤:javascript
上一篇:我嘗試將我的JS腳本移動到一個單獨的js檔案中,但是一旦我這樣做了,它就停止了作業。我該如何解決?
下一篇:自動對焦輸入組件Antd
