You haven’t declared a type for the parameter, so PowerShell uses whatever it can. In this case, a lot of things in the parameter binder will register as strings if you enter them without parentheses.
However, its conversion logic is pretty sound, so if you in fact simply omitted that type check, it would run… but there are other pitfalls.
If you pass a negative integer to this function, it will recurse until it overflows (or underflows, I guess). Make sure you add proper handling for that first, but yes you can omit the validation attribute to allow those as well.
Also, as a point of note:
If you take a step back, even in normal accounting / banking practices, or MS Excel,
using parens for negative numbers is an common and an industry practice.