割と時間かかったので載せます。何かの参考になれば幸いです。
少数以外で最初入った"0"も消せます。
コード
以下のメソッドで変換した値を、お好みの方法でinputのvalueにセットしてください。
※コメントでの指摘内容を修正しました 4/20 9:35
const validateInputFloat = (value: string): string => {
const float = value
.replace(/^0+(?=\d)/, "")
.replace(/\.$/, ".0")
.replace(/^\./, "0.");
return float.length < 1 || Number.isNaN(+float) ? "0" : float;
};