Javascript 输入值时如何正确使用toFixed
我想保留数字后面的两位数字,即Javascript 输入值时如何正确使用toFixed,javascript,reactjs,Javascript,Reactjs,我想保留数字后面的两位数字,即2.89或2.00。谷歌让我开始使用.toFixed(2) 虽然效果很好,但当输入input值时,效果并不好: const[value,setValue]=useState() const onChange=(值)=>{ 常量浮点=解析浮点(值) 设置值(浮动到固定(2)) } onChange(target.value)} /> 如果我输入,比如说“300”,输入值在“3.00”处停止。我必须将光标移到“3”之前才能键入“300”。最好的方法是什么 我希望在具有
2.89
或2.00
。谷歌让我开始使用.toFixed(2)
虽然效果很好,但当输入input
值时,效果并不好:
const[value,setValue]=useState()
const onChange=(值)=>{
常量浮点=解析浮点(值)
设置值(浮动到固定(2))
}
onChange(target.value)}
/>
如果我输入,比如说“300”,输入值在“3.00”处停止。我必须将光标移到“3”之前才能键入“300”。最好的方法是什么
我希望在具有“自由类型”功能的同时,该值始终显示.33
、.00
等。键入此问题时,我觉得需要使用onBlur
将值转换为.toFixed
,而不是在键入时 嗨,伙计,看这个
并尝试使用阶跃属性,我推荐
<input
type="number"
value={value}
step="1"
onChange={({ target }) => onChange(target.value)}
/>
onChange(target.value)}
/>
如果有效,请尝试使用
onBlur
,并在设置值时添加一些检入
导出默认函数App(){
const[value,setValue]=使用状态(“”);
const onChange=(v)=>{
如果(!Number.isNaN(v)){
设定值(v);
}
};
返回(
onChange(target.value)}
onBlur={e=>setValue(Number(value).toFixed(2))}
/>
);
}
我不会尝试在onChange
上设置数字的小数位数,而是创建一个onBlur
处理程序
const TodoApp = ( ) => {
const [ value, setValue] = React.useState('');
const onBlur = (e) => {
const float = parseFloat(e.target.value)
setValue(float.toFixed(2))
}
return (
<input
type="number"
value={value}
onChange={(e) => setValue(e.target.value)}
onBlur={onBlur}
/>
);
}
const TodoApp=()=>{
const[value,setValue]=React.useState(“”);
常数onBlur=(e)=>{
常量float=parseFloat(如target.value)
设置值(浮动到固定(2))
}
返回(
setValue(e.target.value)}
onBlur={onBlur}
/>
);
}
导出常量InputElement=()=>{
const[value,setValue]=React.useState(0);
常数fixInt=(v)=>{
设定值(数字(v)至固定值(2));
};
返回(
fixInt(target.value)}
/>
);
}
是的,你走对了,使用onBlur
。是的,我想会有一种更干净的方法。但是,嘿,它起作用了。谢谢。谢谢你的回答,但正确的方法是使用onBlur()
。试试看;)您能否添加一些描述或注释,说明这段代码是如何工作的,以及它为什么解决了这个问题?这将有助于进一步理解上下文,而无需解密代码。
export const InputElement = () => {
const [value, setValue] = React.useState(0);
const fixInt = (v) => {
setValue(Number(v).toFixed(2));
};
return (
<div className="App">
<input
type="number"
value={value}
step="1"
onChange={({ target }) => fixInt(target.value)}
/>
</div>
);
}