Because that’s exactly how the spec says it should work. The number input can accept floating-point numbers, including negative symbols and the e or E character (where the exponent is the number after the e or E):
A floating-point number consists of the following parts, in exactly
the following order:
- Optionally, the first character may be a “
-” character.- One or more characters in the range “
0—9“.- Optionally, the following parts, in exactly the following order:
- a “
.” character- one or more characters in the range “
0—9“- Optionally, the following parts, in exactly the following order:
- a “
e” character or “E” character- optionally, a “
-” character or “+” character- One or more characters in the range “
0—9“.