2017-07-04 4 views
1

En C, il y a un type appelé long double, qui sur ma machine est de 16 octets (128 bits). Est-il possible de stocker un long double dans Swift? J'ai essayé des alias de type (typedef s) de long double à partir d'un en-tête Objective-C, mais il n'apparaît pas dans Swift. Et les fonctions renvoyant long double (powl, sqrtl) n'apparaissent pas non plus.Long double dans Swift

Je sais qu'il y a un Float80 mais c'est seulement 80 bits, pas 128 bits.

+0

Etes-vous sûr que c'est 128bits? D'après les documents officiels: ** long double ** - type à virgule flottante de précision étendue. Ne correspond pas nécessairement aux types mandatés par IEEE-754. ** Habituellement, type virgule flottante x87 80 bits ** sur les architectures x86 et x86-64. –

+0

Oui, 'sizeof (long double)' renvoie '16'. – SpilledMango

+0

Mais comment puis-je utiliser les fonctions 'long double' dans Swift? – SpilledMango

Répondre

4

À moins d'avoir un processeur POWER, votre double de 128 bits est en fait un nombre de précision étendu de 80 bits, plus 48 bits gaspillés.