gpt4 book ai didi

javascript - 输入输入值时如何正确使用 toFixed

转载 作者:行者123 更新时间:2023-11-30 23:54:20 28 4
gpt4 key购买 nike

我想保留数字后面的两位数字,即 2.892.00。谷歌把我带到this answer使用.toFixed(2)

虽然效果很好,但在输入 input 值时效果不佳:

const [ value, setValue] = useState()

const onChange = (value) => {
const float = parseFloat(value)
setValue(float.toFixed(2))
}


<input
type="number"
value={value}
onChange={({ target }) => onChange(target.value)}
/>

如果我输入“300”,输入值将停止在“3.00”。我必须将光标移到“3”之前才能输入“300”。最好的方法是什么?

我希望该值始终显示 .33.00 等,同时具有“自由类型”的能力。当我输入这个问题时,我觉得我需要使用 onBlur 将值转换为 .toFixed 而不是在输入时?

最佳答案

您可以使用onBlur并在设置值时添加一些检查

export default function App() {
const [value, setValue] = useState('');
const onChange = (v) => {
if (!Number.isNaN(v)) {
setValue(v);
}
};

return (
<div className="App">
<input
type="number"
value={value}
step="1"
onChange={({ target }) => onChange(target.value)}
onBlur={e => setValue(Number(value).toFixed(2))}
/>
</div>
);
}

关于javascript - 输入输入值时如何正确使用 toFixed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61175788/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com