A money input breaks in three ways: floats (0.1 + 0.2), the assumption that every currency has two decimals (JPY has none, KWD has three), and separators that mean the opposite thing one locale over.
We store amounts as integer counts of minor units, take the exponent from a bundled ISO 4217 table with an explicit override, and parse partial input using the locale's own separators. Worth checking what your own field does with "1.234".
https://shipmindlabs.com/c/135a55be