Thread: Re: [PATCHES] to_char(FM9.9) bug fix

Re: [PATCHES] to_char(FM9.9) bug fix

From
Peter Eisentraut
Date:
Karel Zak writes:

> test=# select to_char(0,'FM9.9');
>  to_char
> ---------
>  0.
> (1 row)
>
> test=# select to_char(1,'FM9.9');
>  to_char
> ---------
>  1.
> (1 row)

I find this highly bizzare.  The FM modifier means to omit unnecessary
trailing stuff.  There is no reasonable business or scientific custom to
leave a trailing point after a number.

Or perhaps a more pragmatic question is, how would I print a number
without the trailing point?

-- 
Peter Eisentraut   peter_e@gmx.net



Re: [PATCHES] to_char(FM9.9) bug fix

From
Tom Lane
Date:
Peter Eisentraut <peter_e@gmx.net> writes:
> Karel Zak writes:
>> test=# select to_char(0,'FM9.9');
>> to_char
>> ---------
>> 0.
>> (1 row)
>> 
>> test=# select to_char(1,'FM9.9');
>> to_char
>> ---------
>> 1.
>> (1 row)

> I find this highly bizzare.

No doubt, but it's what Oracle does (see tests posted to the lists by
several people) and to_char exists to duplicate Oracle behavior.  This
is hardly the silliest aspect of to_char's definition, IMHO ...
        regards, tom lane


Re: [PATCHES] to_char(FM9.9) bug fix

From
Karel Zak
Date:
On Fri, Sep 20, 2002 at 09:24:00PM +0200, Peter Eisentraut wrote:
> Karel Zak writes:
> 
> > test=# select to_char(0,'FM9.9');
> >  to_char
> > ---------
> >  0.
> > (1 row)
> >
> > test=# select to_char(1,'FM9.9');
> >  to_char
> > ---------
> >  1.
> > (1 row)
> 
> I find this highly bizzare.  The FM modifier means to omit unnecessary
In the code it's commented as "terrible Ora format" :-)

> trailing stuff.  There is no reasonable business or scientific custom to
> leave a trailing point after a number.
I think so. I don't know who can use format number like '1.' or '.0'. Can somebody explain why Oracle implement it, who
useit?
 

> Or perhaps a more pragmatic question is, how would I print a number
> without the trailing point?
Don't use FM or use FM9.0
Examples:
'SVRMGR' = Oracle8 Release 8.0.5.0.0'test=#' = PostgreSQL 7.3b1
       test=# select to_char(1, 'FM9.9');        to_char        ---------        1.
       SVRMGR> select to_char(1, 'FM9.9') from dual;       TO_C       ----       1.                 test=# select
to_char(1,'9.9');        to_char        ---------         1.0               SVRMGR> select to_char(1, '9.9') from dual;
     TO_C       ----        1.0
 
       test=# select to_char(1, 'FM9.0');        to_char        ---------        1.0
       SVRMGR> select to_char(1, 'FM9.0') from dual;       TO_C       ----       1.0 


-- Karel Zak  <zakkr@zf.jcu.cz>http://home.zf.jcu.cz/~zakkr/C, PostgreSQL, PHP, WWW, http://docs.linux.cz,
http://mape.jcu.cz