Mail Archives: djgpp/1996/12/02/01:34:40
In article <32A18E63 DOT 3F09 AT pobox DOT oleane DOT com>,
Francois Charton <deef AT pobox DOT oleane DOT com> wrote:
>This is quite interesting : the "more precise" 80bit number, or the cast
>to double gives the wrong answer (mathematically I mean), whilst the
>"rough" float truncate yields the right one... (And the truncated number
>is bigger than the "less truncated" one: this is not what could be
>expected from a truncature operation on a positive number).
Double to float involves round-to-nearest, rather than truncation, I'll
bet. That could easily explain the behavior you're seeing, if the
round-to-nearest requires rounding up. Truncation only happens when the
float/double is converted to an int. The best solution is to always add
0.5 before converting any float or double to an int, as someone
suggested already.
- Raw text -