comp.lang.ada
 help / color / mirror / Atom feed
From: ssj@castle.ed.ac.uk (S Johal)
Subject: Truncation of FLOATS
Date: 10 Jan 90 18:06:08 GMT	[thread overview]
Message-ID: <1550@castle.ed.ac.uk> (raw)

Hello ADA experts,

One of my colleagues has a problem which I hope somebody has an easy solution
to. Basically he is after the whole number part of a floating point number. We
found no way in ADA to directly implement it, so we tried something like:

    ROUNDED := INTEGER(FLOATING_NUMBER);
    if FLOATING_NUMBER - ROUNDED >= 0.0 then
      TRUNCATED_PART := ROUNDED;
    else
      TRUNCATED_PART := ROUNDED - 1;
    end if;

examples:  FLOATING_NUMBER       ROUNDED      TRUNCATED_PART
           6.4                   6            6
           6.6                   7            6
the problem is:
           7.0                   7            6 ??? when it should be 7

We have checked what 7.0 - 7.0 gives, and its not 0.0, which is the problem I
suppose. My colleague knows about converting to a string and taking off the
integer bit, but this is inefficient.

Any ideas ?

*-------------------------------------------*----------------------------*
*  Subindrao Johal,                         *++++++++++++++++++++++++++++*
*  SARI Project,                            *  tel:   031 668 1550 x219  *
*  Department of Electrical Engineering,    *  fax:   031 662 4678       *
*  University of Edinburgh,                 *  email: ssj@sari.ed.ac.uk  *
*  The King's Buildings, Edinburgh EH9 3JL  *++++++++++++++++++++++++++++*
*------------------------------------------------------------------------*

             reply	other threads:[~1990-01-10 18:06 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1990-01-10 18:06 S Johal [this message]
1990-01-10 21:35 ` Truncation of FLOATs William Thomas Wolfe, 2847 
replies disabled

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