From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM autolearn=ham autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,319c841368a8705a,start X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2002-07-07 05:18:44 PST Path: archiver1.google.com!news1.google.com!newsfeed.stanford.edu!novia!novia!newsfeed.icl.net!newsfeed.fjserv.net!newsfeed.freenet.de!news.freenet.de!not-for-mail From: Jan Prazak Subject: gnat: float problem Date: Sun, 07 Jul 2002 14:06:41 -0100 Newsgroups: comp.lang.ada Message-ID: User-Agent: Pan/0.11.2 (Unix) Mime-Version: 1.0 Content-Type: text/plain; charset=iso885915 Content-Transfer-Encoding: 8bit X-Comment-To: ALL NNTP-Posting-Host: 213.7.190.144 X-Trace: 1026043552 news.freenet.de 27006 213.7.190.144 X-Complaints-To: abuse@freenet.de Xref: archiver1.google.com comp.lang.ada:26923 Date: 2002-07-07T14:06:41-01:00 List-Id: Hello, I don't know if this is a bug or not, please take a look: ----------------- with Text_IO; use Text_IO; procedure my_test is i : integer; f : float := -1.0; package My_int_io is new Integer_IO(integer); use My_int_io; package My_float_io is new Float_IO(float); use My_float_io; begin new_line; for x in 1 .. 6 loop put(f); i := integer(f); put(i); new_line; f := f + 0.1; end loop; new_line; put(integer(-0.5)); -- prints "-1" end; ---------------- OUTPUT: -1.00000E+00 -1 -9.00000E-01 -1 -8.00000E-01 -1 -7.00000E-01 -1 -6.00000E-01 -1 -5.00000E-01 0 -1 I know that floating point numbers are not very exact, but this really looks like a bug, because -5.00000E-01 == -0.5. Jan