The documentation of to_char() is unclear regarding the meaning of the
various formatting patterns for plus and minus signs:

S       negative value with minus sign (uses locale)
MI      minus sign in specified position (if number < 0)
PL      plus sign in specified position (if number > 0)
SG      plus/minus sign in specified position

Here is what happens: (The quotes in the result are not actually part of
the function result.)

to_char(485.8, 'S9999.999')             ' +485.800'
to_char(485.8, 'MI9999.999')            '   485.800'
to_char(485.8, 'PL9999.999')            '+ 485.800'
to_char(485.8, 'SG9999.999')            '+ 485.800'

to_char(-485.8, 'S9999.999')            ' -485.800'
to_char(-485.8, 'MI9999.999')           '- 485.800'
to_char(-485.8, 'PL9999.999')           '  -485.800'
to_char(-485.8, 'SG9999.999')           '- 485.800'

to_char(485.8, '9999.999S')             ' 485.800+'
to_char(485.8, '9999.999PL')            ' 485.800+'
to_char(485.8, '9999.999MI')            '  485.800 '
to_char(485.8, '9999.999SG')            ' 485.800+'

to_char(-485.8, '9999.999S')            ' 485.800-'
to_char(-485.8, '9999.999PL')           ' -485.800 '
to_char(-485.8, '9999.999MI')           ' 485.800-'
to_char(-485.8, '9999.999SG')           ' 485.800-'

The SG seems to work okay, and the S could be considered okay if the
documentation were adjusted, but I suspect there are a few bugs in PL and
MI.

-- 
Peter Eisentraut   [EMAIL PROTECTED]



---------------------------(end of broadcast)---------------------------
TIP 4: Don't 'kill -9' the postmaster

Reply via email to