Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 输入值时如何正确使用toFixed_Javascript_Reactjs - Fatal编程技术网

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>
  );
}