我接受用戶輸入并嘗試將最大小數位數設定為小數點后 8 位。我正在研究這個,我看到了告訴我執行 javascript 的 .toFixed() 方法的解決方案。但是,我嘗試了一下,發現無論我在輸入欄位中輸入什么,它都會自動在輸入中添加大約 8 個零。例如,如果我在欄位中輸入 5,我會在輸入欄位中得到以下資訊:5.00000000
這不是目標,因為我只是想將用戶可以輸入的小數位數限制為 8。如果小于這個數也沒關系。
請在下面查看我的代碼。謝謝!
const handleAmount = (value) => {
const numberAmount = Number(value).toFixed(8);
setAmount(numberAmount);
};
<TextField
className={classes.textField}
type="number"
onChange={e => handleAmount(e.target.value)}
value={amount}
placeholder="0.000"
inputProps={{
maxLength: 8,
step: '.01'
}}
variant="outlined" />
uj5u.com熱心網友回復:
您可以做一個小技巧,將數字乘以1e8然后將其四舍五入,然后除以1e8。
例如:
const setAmount = console.log;
const handleAmount = (value) => {
const numberAmount = Number(value);
const rounded = Math.round(numberAmount * 1e8) / 1e8;
setAmount(rounded);
};
handleAmount(10.21231123124124124142);
handleAmount(7.242);
handleAmount(80.00000000000);
handleAmount(21.00000001);
但是,缺點是41.000000000例如會被決議為41.
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/441737.html
標籤:javascript 反应 反应式 功能 数学
上一篇:二進制異化演算法,64塊
