Parcours
/
Swift
Swift
/
Programme
/
Les nombres
Le

Les nombres en Swift

1 exercice

À propos de Les nombres

Les nombres

Swift possède deux grandes catégories de nombres : les entiers et les nombres à virgule flottante.

  • Les entiers représentent des nombres sans partie fractionnaire, comme 0, 1, -1, 42 et -273.
  • Les nombres à virgule flottante représentent des nombres dotés d'une partie fractionnaire, comme 0.0, 3.14 et -1.36969e-10.

Tu peux insérer des tirets bas dans les littéraux numériques pour les rendre plus lisibles : 1_000_000 est identique à 1000000. Les littéraux à virgule flottante peuvent s'écrire en notation décimale ou exponentielle.

Dans la plupart des cas, on utilise Int pour les entiers et Double pour les nombres à virgule flottante :

let speed: Int = 42                           // Explicit Int
let pi: Double = 3.14                         // Explicit Double
let giga: Double = 1_000_000_000              // Double with readability underscores
let plancksConstant: Double = 6.62607015e-34  // Double in scientific notation

Opérateurs arithmétiques

Swift fournit un ensemble d'opérateurs arithmétiques standards pour les calculs numériques :

Opérateur Description Exemple
+ Addition 4 + 6 donne 10
- Soustraction 15 - 10 donne 5
* Multiplication 2 * 3 donne 6
Caution

Swift est un langage à typage sûr et n'autorise pas le mélange de types numériques différents dans les opérations arithmétiques. Tu ne peux pas additionner ou multiplier directement un Int et un Double ; tu dois d'abord convertir l'un des deux types pour qu'il corresponde à l'autre.

Division

L'opérateur / effectue une division. Quand les deux opérandes sont des entiers, la division entière tronque la partie fractionnaire :

5.0 / 2.0 // 2.5 (Double division)
5 / 2     // 2 (integer division truncates the remainder)

Diviser un nombre à virgule flottante non nul par zéro donne inf ou -inf. Diviser 0.0 par 0.0 produit nan (Not a Number). À l'inverse, diviser un entier par zéro provoque une erreur de compilation ou d'exécution :

print(5.0 / 0.0)  // Prints inf
print(-5.0 / 0.0) // Prints -inf
print(0.0 / 0.0)  // Prints nan

// The following line will not compile:
// print(5 / 0) // Error: Division by zero

L'opérateur de reste

L'opérateur de reste (%) calcule le reste de la division de deux entiers :

5 % 2  // 1
-5 % 2 // -1

// Dividing by zero produces an error:
// 5 % 0 // Error: Division by zero
Note

En Swift, % est un véritable opérateur de reste, et non un opérateur modulo. Le résultat prend toujours le signe du premier opérande (le dividende), quel que soit le signe du second :

5 % -2  // 1
-5 % 2  // -1

Arrondir des nombres à virgule flottante

Tu peux arrondir un nombre à virgule flottante avec la méthode rounded(). Par défaut, rounded() arrondit à l'entier le plus proche. Tu peux aussi préciser une règle d'arrondi particulière, comme .up ou .down :

let x = 3.14
let y = x.rounded()      // 3.0
let w = x.rounded(.down) // 3.0
let z = x.rounded(.up)   // 4.0

Inférence de type

Quand tu déclares une constante ou une variable numérique sans annotation de type, Swift en déduit le type :

  • Les nombres entiers sont considérés par défaut comme des Int.
  • Les nombres avec une partie décimale sont considérés par défaut comme des Double.
let x = 42         // Inferred as Int
let y = 42.0       // Inferred as Double
let z: Double = 42 // Explicitly typed as Double

Conversion de type

Pour effectuer des opérations entre des valeurs de types différents, convertis l'une des valeurs à l'aide d'initialiseurs de type comme Double(_:) ou Int(_:) :

let integerCount = 42
let floatingCount = Double(integerCount)
print(floatingCount) // Prints 42.0

let pi = 3.14
let integerPi = Int(pi)
print(integerPi) // Prints 3 (fractional part is truncated)
Modifie via GitHub Le lien s'ouvre dans une nouvelle fenêtre ou un nouvel onglet

Apprends Les nombres