cluther@ponder.csci.unt.edu (Clay Luther) (05/30/91)
I cannot figure this one out. My program is generating a floating point
exception when testing two valid float numbers. Here is the code...
40 int r1, r2;
41 float fval;
42 float tval;
43
44 r1 = (int)x;
45 tval = (x - r1);
46 fval = float_rand();
47 r2 = r1+1;
48 if ( fval > tval ) {
49 return r1;
50 } else {
51 return r2;
52 }
x is register float, and is passed into the function. Originally, I had the
function written simply as:
return ( ( float_rand() > x-(int)x ) ? (int)x : (int)(x+1) );
but that generated a fp error. I expanded it so I could look at each step.
The error occurs on line 48
if ( fval > tval ) {
WHY?
Dbx informs that both fval and tval have reasonable values. But this test just
doesn't work.
Confused.
--
Clay Luther Lonely C++ Programmer
cluther@ponder.csci.unt.edu
cluther@solo.csci.unt.edu I work here now and they still
cluther@supernet.haus.com don't let me have any opinions.