Convert double to long if lossless

kdevel kdevel at vogtner.de
Tue Jan 19 21:04:51 UTC 2021


On Tuesday, 19 January 2021 at 11:42:17 UTC, Per Nordlöw wrote:
> I want to convert a double to a long if conversion is lossless 
> (without fractional part, non-nan, non-inf, within long-range, 
> etc).

And then? I mean: What do you want to do with the long what could 
not
be done with the double in the first place?

BTW: Has anybody noticed that there already might have been a 
loss of precision
even before the conversion to long, since the mantissa of the 
double only
entails 53 bit?

    long q = 1L << 53;
    long r = q + 1;
    assert (q != r);
    double s = q, t = r;
    assert (s == q);
    assert (t == r);
    assert (s != t); // fail



More information about the Digitalmars-d-learn mailing list