Den Einzigen Typ-Unterschied gibt es beim Extended, welchen man eigentlich eh hätte nie direkt verwenden sollen.
Extended gibt es unter 64 Bit nicht, das ist dort bloß noch ein Alias für Double.
Aber eventuell sieht die
Exception-Maske unterschiedlich aus?
FGetExceptMask
FSetExceptMask
[EDIT]
besser Folgenes verwenden
GetExceptionMask
SetExceptionMask
(welches unter 64 Bit auf
GetSSEExceptionMask umgeleitet wird)
[/EDIT]
Zitat:
exInvalidOp - An invalid operation was attempted.
exDenormalized - A number was reduced in size smaller than can be stored as non-zero. It has been denormalized.
exZeroDivide - An attempt was made to divide by zero.
exOverflow - A number has exceeded the highest positive value supported.
exUnderflow - A number has exceeded the highest negative value supported.
exPrecision - A number has exceeded the number of digits of precision.
Aber wenn es daran liegt, dass unter 32 Bit einige
Exception nicht ausgelöst werden, dann würde ich wohl eher nachsehn, warum es zum Überlauf kommt, also die Ursache beheben, anstatt nur an den Symptomen rumzupfuschen.
Single ist und bleibt auch unter 64 Bit Single
und Integer war mal als platformabhängiger Typ definiert (unter 16 Bit war er noch 16 Bit), aber für/vor 64 Bit wurde er auf 32 Bit eingefroren (von den CPU-Entwicklern und alle Softwaretools machten mit) und stattdessen ein neuer Typ erfunden (nennt sich in Delphi
NativeInt),
also Integer (LongInt) bleibt auch unverändert.
[EDIT]
Unter 64 Bit dürften die Floats über SSE behandelt werden (
GetMXCSR),
wärend es unter 32 Bit noch die FPU machte (
Get8087CW).