Re: BUG #6217: to_char() gives incorrect output for very small float values - Mailing list pgsql-bugs

From Greg Stark
Subject Re: BUG #6217: to_char() gives incorrect output for very small float values
Date
Msg-id CAM-w4HPEucRFT7PYWKDDmeW9RmOamKmar8GzNrD=-mKQUW0faA@mail.gmail.com
Whole thread Raw
In response to Re: BUG #6217: to_char() gives incorrect output for very small float values  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: BUG #6217: to_char() gives incorrect output for very small float values  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-bugs
On Tue, Sep 20, 2011 at 8:52 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> However, it would
> be interesting to know what Oracle etc do with NaN and Infinity,
> assuming they even support such numbers.

Note that it looks like NUMBER cannot store either Infinity or NaN.
They can only occur in BINARY_FLOAT and BINARY_DOUBLE. From the docs:

> If a BINARY_FLOAT or BINARY_DOUBLE value is converted to CHAR or NCHAR, and the input is either infinity or NaN (not
anumber), then Oracle always returns the pound signs to replace the value. 

And testing shows:


SQL> select to_char(cast('NAN' as binary_float), 'FM9999.9999') from dual;

TO_CHAR(CA
----------
##########

SQL> select to_char(cast('-Inf' as binary_float), 'FM9999.9999') from dual;

TO_CHAR(CA
----------
##########

SQL> select to_char(cast('+Inf' as binary_float), 'FM9999.9999') from dual;

TO_CHAR(CA
----------
##########


--
greg

pgsql-bugs by date:

Previous
From: "Kevin Grittner"
Date:
Subject: Re: BUG #6217: to_char() gives incorrect output for very small float values
Next
From: Tom Lane
Date:
Subject: Re: BUG #6217: to_char() gives incorrect output for very small float values