Les Nombres
Comprendre comment utiliser les différents types de nombres en swift et leur utilisation.
Introduction
En Swift, les nombres sont des types de données qui représentent des valeurs numériques. Vous pourrez ainsi stocker des valeurs comme l'âge, une distance, un montant, etc...
Il existe plusieurs types de nombres dans Swift, dont les plus courants sont les suivants :
- Les nombres entiers sont des nombres qui n'ont pas de virgule comme par exemple 5 ou -34. Les nombres entiers sont signés ou non. La différence est qu'un nombre non signé ne peut pas être négatif. Ils sont sur (8, 16, 32 et 64 bits).
- Les nombres entiers non signés (qui ne peuvent pas être négatifs).
- Les nombres décimaux (Floating point numbers).
Pour chaque catégorie de chiffre, nous aurons plusieurs types disponibles selon la taille et la précision voulue.
Les nombres entiers signés: Int
Le type de nombre signé est Int, une contraction de Integer, pour nombre entier en anglais. Dans la plupart des cas, il n'est pas utile de spécifier une taille (Int32 par exemple pour 32 bits). À moins de travailler sur des nombres de taille spécifique, il est conseillé d'utiliser le Int simple pour une question de consistance et d'interopérabilité.
var myInt = 34
var mySecondInt: Int = 3456
Les nombres non signés: UInt
Le nombre non signé sera UInt. Il ne peut donc pas être négatif. Comme pour les nombres signés, il n'est pas utile de définir une taille spécifique. Lorsque nous utilisons un nombre entier sans spécifier le type, Swift le met automatiquement en Int et non en UInt.
var unsigned: UInt = 45
Les autres Int & UInt
Il existe, comme mentionné précédemment, plusieurs types de nombres entiers en plus des signés et des non signés. Il s'agit des Int et des UInt selon la taille.
Les différents Int
Les tailles des entiers signés en bits:
- Int8: de -128 à 127
- Int16: de -32768 à 32767
- Int32: de -2147483648 à 2147483647
- Int64: de -9223372036854775808 à 9223372036854775807
var valueA: Int8 = 47
var valueB: Int16 = 456
var valueC: Int32 = 345656
var valueD: Int64 = -54657123
Les différents UInt
Les tailles des entiers non signés en bits:
- UInt8: de 0 à 255
- UInt16: de 0 à 65535
- UInt32: de 0 à 4294967295
- UInt64: de 0 à 18446744073709551615
var valueA: UInt8 = 47
var valueB: UInt16 = 456
var valueC: UInt32 = 345656
var valueD: UInt64 = 54657123
Et la taille des Int et UInt "classique" dans tout ça ?
Dans le cas des "classiques", la taille dépend de la plateforme utilisée. Si vous êtes sur du 32 bits, alors votre Int sera automatiquement un Int32, etc...
Les nombres décimaux
Les nombres décimaux sont des nombres qui ont une virgule. Comme par exemple 32,09 ou -14,6. Nous en avons 2 :
- Les Double qui sont des décimaux sur 64 bits.
- Les Float qui sont des décimaux sur 32 bits.
Le type inference caste votre décimal en Double si vous ne spécifiez pas son type.
var famousDecimal = 3.14
var castToFloat: Float = 56.345
var castToDouble: Double = -34546.2355676
Conversion entre types
À certains moments du développement de nos applications, nous aurons besoin de convertir des types de nombre. Par exemple de Int vers Float, ou Double vers Int....
Pour ceci, il suffit de spécifier le Type que nous voulons obtenir et mettre la valeur à convertir entre parenthèses.
var famousDecimal = 3.14
var myFloat: Float = 56.345
var myDouble: Double = -34546.2355676
var convertedToDouble: Double = Double(myFloat)
var convertedToInt: Int = Int(famousDecimal)
var convertedToFloat: Float = Float(myDouble)
print(convertedToDouble)
print(convertedToInt)
print(convertedToFloat)