Accueil : Le langage C# : Les opérateurs : Opérateurs arithmétiques
Les opérateurs arithmétiques en C#
Les opérateurs arithmétiques sont classiques. On dispose des opérateurs suivants :
- Addition ( + )
- Soustraction ( - )
- Multiplication ( * )
- Division entière et flottante ( / )
- Modulo ( % ) : reste de la division entière
Il n’y a rien à signaler hormis le cas de la division. Tout d’abord, observons le fonctionnement d’une division entière.
class Program
{
static void
Main(string[] args)
{
int a = 10;
int b = 0;
int r = a / b;
Console.WriteLine(r);
}
}
Le programme produit le résultat suivant :
Exception non gérée : System.DivideByZeroException: Tentative de division par zéro.
à ConsoleApplication4.Program.Main(String[] args) dans C:\solutions\poubelle\
ConsoleApplication4\ConsoleApplication4\Program.cs:ligne 13
En toute logique, la CLR lève une exception de type DivideByZeroException. Si on refait la même chose avec une division non entière il en va tout autrement comme le montre l’exemple suivant :
class Program
{
static void
Main(string[] args)
{
double a = 10.0;
double b = -10.0;
double c = 0.0;
double r1 = a / c;
double r2 = b / c;
double r3 = c / c;
Console.WriteLine("{0} / {1} = {2}", a, c,
r1);
Console.WriteLine("{0} / {1} = {2}", b, c,
r2);
Console.WriteLine("{0} / {1} = {2}", c, c,
r3);
}
}
Le programme produit le résultat suivant :
10 / 0 = +Infini
-10 / 0 = -Infini
0 / 0 = Non Numérique
Le type double possède plusieurs constantes que l’on peut utiliser pour tester si des variables contiennent ces valeurs particulières :
- Infini positif : double.PostiveInfinity
- Infini négatif : double.NegativeInfinity
- Résultat non numérique : double.NaN