Thanks for the response Manu. I'm wondering if you are correnct because of
this output from my tests "e.Default_field_epsilon =
4.9999999999999999e-017". I did attempt the fix you suggested and still got
the same result except tht Default_field_epsilon is more accurate
"e.Default_field_epsilon = 5.0000000000000005e-017". I'll remind you that I
think the bug is that after this assignment "e := -2" the output of
`field_epsilon' from `e' is still "0". Do you think maybe this is a bug?
Regards
Chris Saunders
----- Original Message -----
From: Emmanuel Stapf [ES]
To:
[hidden email]
Sent: Sunday, August 30, 2009 11:49 PM
Subject: RE: [eiffel_software] Can't understand this
> as "e := -2" and then am doing "print ("e.field_epsilon = "); print
> (e.field_epsilon); cr". The result of the last line is printed as "0".
> Note that in `make_from_integer', `field_epsilon' is set to
> `Default_field_epsilon' which is declared in INT_8_REF as
> `Default_field_epsilon: REAL_64 = 0.00000000000000005'.
The issue is that the value has 17 digits and a REAL_64 can only hold 16
significant digits. Rewriting the constant as 5.0e-17 should give you the
proper
value.
Regards,
Manu