Thorsten Engler <thorsten.eng...@gmx.net> schrieb am Fr., 27. Apr. 2018,
16:09:

> Highest integer that fits in a Int64:
>
> 9223372036854775808
>
> 1e20:
>
> 100000000000000000000
>
>
>
> Your Int is overflowing.
>
>
>
> You can’t implement Frac by going through an Integer, that will never
> work. Except if you have an integer that can hold 1.8E308 (which would be a
> 1024 bit integer, or thereabouts)
>

Yes, I saw that now as well, though it's even worse as the cvttsd2si
instruction in fact only works with 32-bit integers.
That additionally means that Trunc() and Round() are broken for such values
as well as they rely on the same kind of functions. Int() works because it
doesn't have an SSE version.

Regards,
Sven

>
_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel

Reply via email to