comp.lang.ada
 help / color / mirror / Atom feed
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=



  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