floating point verification using is?

Steven Schveighoffer schveiguy at yahoo.com
Fri Dec 18 11:31:00 PST 2009


On Fri, 18 Dec 2009 14:16:17 -0500, Steven Schveighoffer  
<schveiguy at yahoo.com> wrote:

> On Fri, 18 Dec 2009 12:34:09 -0500, bearophile  
> <bearophileHUGS at lycos.com> wrote:
>
>> Steven Schveighoffer:
>>
>>> If I have 2 identical floating point values, how do I ensure they are
>>> binary equivalents of eachother?
>>
>> Try this inside std.math of Phobos2:
>> bool isIdentical(real x, real y);
>
> Thanks, that seems to be what I want.

Except it doesn't work with literals properly:

float x;

assert(isIdentical(x, float.init)); // fails

This is what I'm trying to test.  It has to do with the fact that  
float.init is a literal, and I think it's automatically converted to  
real.init.

This code works:

float x;
float y;

assert(isIdentical(x, y));

I'm going to file a bug on this, float is float should just work!

-Steve


More information about the Digitalmars-d-learn mailing list