0.01.to_s -> "1.0"

Hi,

I located very strange behavior of float under Linux. 0.123 is converted
to 123.0
under windows 0.123 is converted correctly to 0.123.

Here is samples:

ruby -v

ruby 1.8.6 (2009-08-04 patchlevel 383) [i686-linux]

irb

irb(main):001:0> 0.123.to_s
=> "123.0"

C:\>ruby -v
ruby 1.8.6 (2007-09-24 patchlevel 111) [i386-mswin32]
C:\>irb
irb(main):001:0> 0.123.to_s
=> "0.123"

How to receive correct float under Linux. Please advice.

Thank you.
Andriy.

···

--
Posted via http://www.ruby-forum.com/\.

That is known bug http://redmine.ruby-lang.org/issues/show/1735

to fix gcc 4.4 optimization, use CFLAGS -fno-strict-aliasing

···

On Sat, Oct 3, 2009 at 6:35 PM, Andriy Tabachyn <atabachyn@gmail.com> wrote:

ruby -v

ruby 1.8.6 (2009-08-04 patchlevel 383) [i686-linux]

irb

irb(main):001:0> 0.123.to_s
=> "123.0"
How to receive correct float under Linux. Please advice.

Nikolai Lugovoi wrote:

···

On Sat, Oct 3, 2009 at 6:35 PM, Andriy Tabachyn <atabachyn@gmail.com> > wrote:

ruby -v

ruby 1.8.6 (2009-08-04 patchlevel 383) [i686-linux]

irb

irb(main):001:0> 0.123.to_s
=> "123.0"
How to receive correct float under Linux. Please advice.

That is known bug http://redmine.ruby-lang.org/issues/show/1735

to fix gcc 4.4 optimization, use CFLAGS -fno-strict-aliasing

Thank you.
--
Posted via http://www.ruby-forum.com/\.