comp.lang.ada
 help / color / mirror / Atom feed
From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: Float precision - gnat vs objectada
Date: Thu, 2 Dec 2004 09:32:41 +0100
Date: 2004-12-02T09:32:41+01:00	[thread overview]
Message-ID: <67y3zzucp3e1.uomux6epm0zs$.dlg@40tude.net> (raw)
In-Reply-To: 1c8dc73c.0412010746.272b978@posting.google.com

On 1 Dec 2004 07:46:38 -0800, P Torle wrote:

> I'm working on a Ada95/C project that shall run on both Linux and
> Windows.
> I have some problems getting the same float precision on both
> platforms.

To get the same precision tell the compiler which one you need.

type My_Float is digits N;

> Example:
> -----------------------------
> subtype Real is Long_Float;
> pi : Real;
> 
> pi := 3.14159_26535_89793_23846_26433_83279_50288_41971_69399_37511;
> Real_Io.Put(pi, Aft => 25);
> -----------------------------
> 
> Results:
> Linux: 3.1415926535897931200000000E+00
> Win32: 3.1415926535897931159979634E+00
> 
> The thing is, the following float-precision definitions are equal on
> both Linux and Windows:
> 
> Real'Machine_Mantissa  : 53
> Real'Machine_Emin      : -1021
> Real'Machine_Emax      : 1024
> Real'Digits            : 15
> 
> So why the difference? 

Probably because the implementations of Real_IO.Put are slightly different.
But anything after 3.14159_26535_8979 is just a noise. The problem is not
whether Long_Floats are different or not. The problem is that Aft=>25 >
T'Digits.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de



      parent reply	other threads:[~2004-12-02  8:32 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-12-01 15:46 Float precision - gnat vs objectada P Torle
2004-12-01 18:50 ` David C. Hoos
2004-12-01 19:03 ` Martin Krischik
2004-12-02  7:51   ` Jeffrey Carter
2004-12-02 10:10     ` Martin Krischik
2004-12-01 23:32 ` Mark Lorenzen
2004-12-02  8:32 ` Dmitry A. Kazakov [this message]
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox