From: Georg Bauhaus <rm.dash-bauhaus@futureapps.de>
Subject: Re: Float conversion
Date: Thu, 29 Jul 2010 17:08:24 +0200
Date: 2010-07-29T17:08:24+02:00 [thread overview]
Message-ID: <4c519968$0$6893$9b4e6d93@newsspool2.arcor-online.net> (raw)
In-Reply-To: <1q5zc0ais535h$.1jqwfxhj9cflc$.dlg@40tude.net>
On 29.07.10 14:46, Dmitry A. Kazakov wrote:
> On Thu, 29 Jul 2010 05:23:42 -0700 (PDT), Henrique wrote:
>
>> I have some problems in converting float variables in Ada. Look at the
>> code below.
>>
>> Why var4 is not equal var1?
>
> Because they are not. Floating-point operations are inexact.
>
Interestingly, a quick rewrite to C translated with gcc gives a different
impression (of equality),
#include <stdio.h>
int main()
{
typedef float My_Float;
#define CONVERSION_CONSTANT 6076.11
const My_Float CONVERSION_CONSTANT2 = 1.0 / CONVERSION_CONSTANT;
My_Float Var1 = 999.9;
My_Float Var2 = Var1*CONVERSION_CONSTANT;
My_Float Var3 = Var2/CONVERSION_CONSTANT;
My_Float Var4 = Var2*CONVERSION_CONSTANT2;
fputs("var3: ", stdout); printf("%.15f", Var3);
if (Var3 = Var1)
fputs("=", stdout);
else if (Var3 > Var1)
fputs(">", stdout);
else
fputs("<", stdout);
fputs("\n", stdout);
fputs("var4: ", stdout); printf("%.15f", Var4);
if (Var4 = Var1)
fputs("=", stdout);
else if (Var4 > Var1)
fputs(">", stdout);
else
fputs("<", stdout);
fputs("\n", stdout);
return 0;
}
$ ./a.out
var3: 999.900024414062500=
var4: 999.900085449218750=
next prev parent reply other threads:[~2010-07-29 15:08 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-07-29 12:23 Float conversion Henrique
2010-07-29 12:44 ` Jacob Sparre Andersen
2010-07-29 12:46 ` Dmitry A. Kazakov
2010-07-29 15:08 ` Georg Bauhaus [this message]
2010-07-29 15:10 ` Georg Bauhaus
2010-07-29 15:35 ` Dmitry A. Kazakov
2010-07-29 18:21 ` Henrique
2010-07-29 19:08 ` Jeffrey R. Carter
2010-07-29 19:15 ` Dmitry A. Kazakov
2010-07-30 1:30 ` Phil Clayton
2010-07-30 8:43 ` Dmitry A. Kazakov
2010-07-30 13:14 ` Phil Clayton
2010-07-30 14:34 ` Dmitry A. Kazakov
2010-07-31 15:12 ` Stephen Leake
2010-08-03 1:07 ` Phil Clayton
2010-08-03 3:31 ` Shark8
2010-08-03 10:38 ` Georg Bauhaus
2010-08-04 7:27 ` Stephen Leake
2010-08-04 16:15 ` Georg Bauhaus
2010-08-04 16:32 ` Phil Clayton
2010-08-04 7:26 ` Stephen Leake
2010-08-04 12:52 ` Robert A Duff
2010-08-04 14:32 ` Dmitry A. Kazakov
2010-08-04 19:36 ` Simon Wright
2010-08-04 19:46 ` Dmitry A. Kazakov
2010-08-04 20:29 ` Georg Bauhaus
2010-08-05 12:05 ` Stephen Leake
2010-08-07 5:54 ` Shark8
2010-08-07 8:56 ` Georg Bauhaus
2010-08-07 13:49 ` Shark8
2010-08-05 10:20 ` Phil Clayton
2010-07-30 13:16 ` Henrique
2010-07-29 15:37 ` Warren
2010-07-29 14:56 ` Georg Bauhaus
2010-07-29 17:56 ` Jeffrey R. Carter
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox