<input type=number>は、数値の入力欄を表す際に使用します。
input要素のtype属性の値に number を指定すると、
要素の値は数値を表す文字列を表します。
以下のサンプルは、数値入力コントロールの使用例を示しています。
min属性を使って最小値を0に、step属性を使って変動幅を0.01に設定しています。
<label>希望価格: $<input type=number min=0 step=0.01 name=price></label>
<p><label>氏名: <input type=text name=fn></label></p>
<p><label>年齢: <input type=number min=0 name=age></label></p>
<p><label>郵便番号: <input type=text name=pc></label></p>
input type=numberは、数字のみで構成されていても厳密には数値ではない入力には不適切です。
例えば、クレジットカード番号の入力欄や、郵便番号の入力欄には不適切です。
input type=number を使用することが適切かどうかを判断するには、
入力値を上下にスクロールする「▲」ボタンや「▼」ボタンのようなインターフェースを持つことに意味があるかどうかを考えてみます。
例えば、クレジットカード番号の最後の1桁を間違えるのは、
すべての桁を間違えるのと同等の間違いです。
そのため、ユーザーがクレジットカード番号を入力する際に「▲」ボタンや「▼」ボタンを使用するのは意味がありません。
このようなケースでは、おそらくtype=textが適切です。
この場合、inputmode属性やpattern属性が役立つでしょう。
HTMLの仕様では、input要素には終了タグ</input>はありません。