Tuts da nicht trotzdem ein record -> Int64 -> Double?
Habe die 64-bit Typen in meinem Originalpost vergessen

Da würde es dann leider nicht funktionieren.
Nehme doch einen Int128!
Spaß beiseite, das muss doch elegant auch mit
Low(deinRecord.Value) < 0 gehen (falls meine zweite Idee im Post untergegangen ist)!
Er will doch die Konvertierung in den Record einbauen, und Low auf T geht nunmal nicht.
In Delphi generics geht leider das meiste nicht elegant, weils nunmal keine C++ Templates sind, denen das herzlich egal wäre,
wenn aus der Menge aller im Universum möglichen Typen für T welche nicht mit Ord funktionieren, solang du nur solche nutzt, bei denen das geht.