Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Ce tutoriel vous explique les types numériques en C#. Vous écrivez de petites quantités de code, puis vous compilez et exécutez ce code. Ce didacticiel contient une série de leçons qui explorent les nombres et les opérations mathématiques en C#. Ces leçons vous enseignent les principes fondamentaux de la langue C#.
Conseil / Astuce
Lorsqu’un bloc d’extrait de code inclut le bouton « Exécuter », ce bouton ouvre la fenêtre interactive ou remplace le code existant dans la fenêtre interactive. Lorsque l’extrait de code n’inclut pas de bouton « Exécuter », vous pouvez copier le code et l’ajouter à la fenêtre interactive active.
Explorer les mathématiques entières
Exécutez le code suivant dans la fenêtre interactive.
int a = 18;
int b = 6;
int c = a + b;
Console.WriteLine(c);
Le code précédent illustre les opérations mathématiques fondamentales avec des entiers. Le int
type représente un entier, un nombre entier positif ou négatif. Vous utilisez le symbole +
pour l’ajout. Voici d’autres opérations mathématiques courantes pour les entiers :
-
-
pour la soustraction *
pour la multiplication-
/
pour la division
Commencez par explorer ces différentes opérations. Modifiez la troisième ligne pour essayer chacune de ces opérations. Par exemple, pour essayer la soustraction, remplacez-la +
par une -
comme indiqué dans la ligne suivante :
int c = a - b;
Essaie. Sélectionnez le bouton « Exécuter ». Ensuite, essayez la multiplication, *
et, division, /
. Vous pouvez également expérimenter en écrivant plusieurs opérations mathématiques dans la même ligne, si vous le souhaitez.
Conseil / Astuce
Lorsque vous explorez C# (ou tout langage de programmation), vous faites des erreurs lorsque vous écrivez du code. Le compilateur trouve ces erreurs et les signale à vous. Lorsque la sortie contient des messages d’erreur, examinez attentivement l’exemple de code et le code dans la fenêtre interactive pour voir ce qu’il faut corriger. Cet exercice vous aide à apprendre la structure du code C#.
Explorer l’ordre des opérations
Le langage C# définit la priorité des différentes opérations mathématiques avec des règles cohérentes avec les règles que vous avez apprises en mathématiques. La multiplication et la division sont prioritaires sur l’addition et la soustraction. Explorez cela en exécutant le code suivant dans la fenêtre interactive :
int a = 5;
int b = 4;
int c = 2;
int d = a + b * c;
Console.WriteLine(d);
La sortie montre que la multiplication est effectuée avant l’ajout.
Vous pouvez forcer un ordre d’opération différent en ajoutant des parenthèses autour de l’opération ou des opérations souhaitées en premier. Ajoutez les lignes suivantes à la fenêtre interactive :
d = (a + b) * c;
Console.WriteLine(d);
Explorez-en davantage en combinant de nombreuses opérations différentes. Remplacez la quatrième ligne du code précédent par quelque chose comme suit :
d = (a + b) - 6 * c + (12 * 4) / 3 + 12;
Console.WriteLine(d);
Vous remarquerez peut-être un comportement intéressant pour les entiers. La division entière produit toujours un résultat entier, même lorsque vous attendez que le résultat inclue une partie décimale ou fractionnaire.
Essayez le code suivant :
int a = 7;
int b = 4;
int c = 3;
int d = (a + b) / c;
Console.WriteLine(d);
Explorer la précision et les limites des entiers
Ce dernier exemple vous a montré que la division entière tronque le résultat. Vous pouvez obtenir le reste à l’aide de l’opérateur de reste, le caractère %
:
int a = 7;
int b = 4;
int c = 3;
int d = (a + b) / c;
int e = (a + b) % c;
Console.WriteLine($"quotient: {d}");
Console.WriteLine($"remainder: {e}");
Le type entier C# diffère des entiers mathématiques d’une autre manière : le int
type a des limites minimales et maximales. Essayez le code suivant pour voir ces limites :
int max = int.MaxValue;
int min = int.MinValue;
Console.WriteLine($"The range of integers is {min} to {max}");
Si un calcul produit une valeur qui dépasse ces limites, vous disposez d’une condition de sous-débit ou de dépassement de capacité . La réponse semble s’encapsuler d’une limite à l’autre. Pour voir un exemple, ajoutez ces deux lignes dans la fenêtre interactive :
int what = max + 3;
Console.WriteLine($"An example of overflow: {what}");
Notez que la réponse est très proche de l’entier minimal (négatif). C’est le même que min + 2
. L’opération d’ajout a dépassé les valeurs autorisées pour les entiers. La réponse est un grand nombre négatif, car un dépassement négatif « inclut » de la plus grande valeur d’entier possible à la plus petite.
Il existe d’autres types numériques avec différentes limites et précisions que vous utiliseriez lorsque le int
type ne répond pas à vos besoins. Examinons ensuite ces types de nombres.
Utiliser le type double
Le double
type numérique représente un nombre à virgule flottante double précision. Ces termes peuvent être nouveaux pour vous. Un nombre à virgule flottante est utile pour représenter des nombres nonintegraux qui peuvent être volumineux ou petits en grandeur. Double précision est un terme relatif qui décrit le nombre de chiffres binaires utilisés pour stocker la valeur. Les nombres de double précision ont deux fois le nombre de chiffres binaires que ceux de simple précision. Sur les ordinateurs modernes, il est plus courant d’utiliser une double précision que des nombres de précision uniques. Les nombres de précision simple sont déclarés à l’aide du float
mot clé. Nous allons explorer. Exécutez le code suivant et consultez le résultat :
double a = 5;
double b = 4;
double c = 2;
double d = (a + b) / c;
Console.WriteLine(d);
Notez que la réponse inclut la partie décimale du quotient. Essayez une expression légèrement plus compliquée avec des nombres réels. Vous pouvez utiliser les valeurs suivantes ou remplacer d’autres nombres :
double a = 19;
double b = 23;
double c = 8;
double d = (a + b) / c;
Console.WriteLine(d);
La plage d’une valeur double est supérieure aux valeurs entières. Essayez le code suivant dans la fenêtre interactive :
double max = double.MaxValue;
double min = double.MinValue;
Console.WriteLine($"The range of double is {min} to {max}");
Ces valeurs sont imprimées en notation scientifique. Le nombre avant la E
est le significande. Le nombre après E
est l'exposant, exprimé en puissance de 10.
Tout comme les nombres décimaux en mathématiques, les doubles en C# peuvent avoir des erreurs d’arrondi. Essayez ce code :
double third = 1.0 / 3.0;
Console.WriteLine(third);
Vous savez que 0.3
c’est 3/10
et pas exactement le même que 1/3
. De même, 0.33
c’est 33/100
. Cette valeur est plus proche de 1/3
, mais toujours pas exacte. Peu importe le nombre de décimales que vous ajoutez, une erreur d’arrondi persiste.
Défi
Essayez d’autres calculs avec de grands nombres, de petits nombres, de multiplication et de division à l’aide du double
type. Essayez des calculs plus compliqués.
Utiliser des types décimaux
Il existe un autre type à apprendre : le decimal
type. Le decimal
type a une plage plus petite mais plus précise que double
. Voyons voir :
decimal min = decimal.MinValue;
decimal max = decimal.MaxValue;
Console.WriteLine($"The range of the decimal type is {min} to {max}");
Notez que la plage est inférieure au double
type. Vous pouvez voir la plus grande précision avec le type décimal en essayant le code suivant :
double a = 1.0;
double b = 3.0;
Console.WriteLine(a / b);
decimal c = 1.0M;
decimal d = 3.0M;
Console.WriteLine(c / d);
Notez que les calculs utilisant le type décimal ont plus de chiffres à droite du point décimal.
Le M
suffixe sur les nombres est la façon dont vous indiquez qu’une constante doit utiliser le decimal
type. Sinon, le compilateur suppose le double
type.
Remarque
La lettre M
a été choisie comme la lettre la plus distincte visuellement entre les mots clés double
et decimal
.
Défi
Écrivez du code qui calcule la zone d’un cercle dont le rayon est de 2,50 centimètres. N’oubliez pas que la zone d’un cercle est le rayon multiplié par PI. Un conseil : .NET contient une constante pour PI, Math.PI que vous pouvez utiliser pour cette valeur. Math.PI, comme toutes les constantes déclarées dans le System.Math
espace de noms, est une valeur double
. Pour cette raison, vous devez utiliser double
au lieu de decimal
valeurs pour ce défi.
Vous devriez obtenir une réponse comprise entre 19 et 20.
Une fois que vous l’avez essayé, ouvrez le volet d’informations pour voir comment vous l’avez fait :
double radius = 2.50;
double area = Math.PI * radius * radius;
Console.WriteLine(area);
Essayez d’autres formules si vous le souhaitez.
Vous avez terminé le didacticiel interactif « Nombres en C# ». Vous pouvez sélectionner le lien Tuples et types pour démarrer le tutoriel interactif suivant, ou vous pouvez visiter le site .NET pour télécharger le Kit de développement logiciel (SDK) .NET, créer un projet sur votre ordinateur et continuer à coder. La section « Étapes suivantes » vous ramène à ces didacticiels.
Vous pouvez en savoir plus sur les nombres en C# dans les articles suivants :