So, for the following code, I get something I think is a little off.  I get the 
same value for all three variable types.  I'm kind of new to this, but I would 
think that a 32 bit would give me a different "smallest value" than a 64 bit or 
80 bit (if real even evaluates to 80 bit on my machine).

What am I doing wrong, or is this a bug?

import std.stdio;

void main() {

        //Find Machine Epsilon:

        double ep = 1.0;
        double n = 1.0;

        while (ep + n != n) {
                ep = ep / 2;
        }

        writefln(ep);

        real epr = 1.0;
        real nr = 1.0;

        while (epr + nr != nr)
                epr = epr / 2;

        writefln(epr);
                
        float epf = 1.0;
        float nf = 1.0;

        while (epf + nf != nf)
                epf = epf / 2;

        writefln(epr);
}

Reply via email to