Movement against float.init being nan
Nick Treleaven
nick at geany.org
Sat Aug 20 13:06:49 UTC 2022
On Saturday, 20 August 2022 at 12:53:28 UTC, Adam D Ruppe wrote:
> ---
> void main() {
> float f = 7.0;
> f /= 0;
> import core.stdc.stdio;
> printf("%d\n", *cast(int*)&f);
> if(f is float.init)
> printf("nan\n");
> }
> ---
>
> That's a different nan than the float.init pattern. I don't
> know if you can start with a float.init and come up with a
> different pattern though, but i expect you can.
Thanks. The above is infinity though.
f = 1.0;
f /= 0;
assert(f is f.infinity);
This produces a different NaN:
float f = 0;
f /= 0;
assert(f is f.nan); //fails
More information about the Digitalmars-d
mailing list