The manual suggests here:
https://www.postgresql.org/docs/current/static/functions-formatting.html#FUNCTIONS-FORMATTING-TABLE> to_number(text, text) | numeric convert string to numeric | to_number ('12,454.8-', '99G999D9S')
The example fails for locales where the comma (',') does not happen to be the group separator and the dot ('.') is not the decimal point.
The example is incorrectly assuming en_US locale. It must instead work locale-agnostic. Replace:
to_number ('12,454.8-', '99G999D9S')
with:
to_number ('12,454.8-', '99,999.9S')
Regards
Erwin Brandstetter