Les nombres sont partout en programmation : que vous calculiez des scores, manipuliez des prix ou mesuriez du temps, vous utilisez des nombres. Mais tous les nombres ne sont pas égaux : les langages de programmation distinguent différents types numériques, chacun ayant ses caractéristiques, avantages et limites. Comprendre ces types est essentiel pour écrire un code précis et fiable.

1. Les principaux types numériques
1.1 Les entiers (int)

Représentent des nombres sans virgule : 1, 42, -7.

Utilisés pour compter des objets, des itérations dans les boucles ou des identifiants.

Limites : chaque langage fixe une taille maximale (par exemple, 32 bits → de -2 147 483 648 à 2 147 483 647). Dépasser cette limite peut provoquer un overflow.

1.2 Les nombres à virgule flottante (float / double)

Représentent des nombres avec des décimales : 3.14, -0.5, 2.0.

Utilisés pour les mesures précises, calculs scientifiques ou financiers.

Attention : la précision est limitée, et certaines opérations peuvent produire de petits écarts (ex. 0.1 + 0.2 ≠ 0.3 exactement).

1.3 Les nombres décimaux précis (decimal / BigDecimal)

Disponibles dans certains langages (C#, Java, Python via decimal).

Conçus pour éviter les erreurs d’arrondi dans les calculs financiers.

Plus lents à calculer que les float/double, mais plus sûrs pour l’argent.

2. Pourquoi choisir le bon type

Utiliser int quand vous avez besoin de compter ou indexer des éléments.

Utiliser float/double pour les calculs approximatifs ou scientifiques.

Utiliser decimal/BigDecimal pour l’argent et les calculs précis.

💡 Exemple en Python :

# Int
a = 10

# Float
b = 3.14

# Decimal (précis pour l'argent)
from decimal import Decimal
c = Decimal('0.1') + Decimal('0.2')  # donne exactement 0.3

3. Les pièges fréquents

Overflow des entiers : dépassement de la capacité maximale.

Erreur d’arrondi des floats : 0.1 + 0.2 peut donner 0.30000000000000004.

Mélange de types : int + float → conversion automatique en float, attention aux résultats inattendus.

4. Astuces pratiques

Toujours connaître la taille et la précision de vos types dans le langage utilisé.

Éviter de stocker de l’argent avec float/double, privilégiez decimal/BigDecimal.

Convertir les types explicitement si nécessaire pour éviter les surprises.