Quelle est la différence entre int et double ?
Il existe trois types de variables dans Flutter vous permettant de stocker des chiffres ou des nombres :
- int ;
- double ;
- num.
Pour expliquer de manière très simplifiée la différence entre les trois, int ne prend que des nombres entiers (1, 10, 100, etc), double des nombres décimaux (1.0, 2.7, 3.14, etc) et num peut servir pour les deux.
Convertir mon int en double et inversement
Si pour une raison, vous avez besoin de convertir votre variable int en double, ou inversement, Flutter a mis à disposition la méthode .parse() :
int valeurInt = 100;
double valeurIDouble = 3.14;
int convertInt = int.parse(valeurDouble) ;
double convertDouble= double.parse(valeurInt) ;
print(convertInt.runtimeType);
print(convertDouble.runtimeType);
↪ int
↪ double
Afficher un nombre dans du texte
Les variables de types String et Int ou double ne sont pas différentes pour rien. Les widgets qui prennent du texte comme paramètre, ne peuvent recevoir que des variables de type String. Vous devrez donc convertir vos nombres avant de pouvoir les afficher, en utilisant la méthode .toString();
int quatre = 4;
Text(${quatre.toString()});
Réaliser des opérations avec des valeurs numériques dans Flutter
L’intérêt de stocker des nombres est bien sûr de pouvoir les additionner, soustraire, etc. Voici donc les différents opérateurs que vous pouvez utiliser avec vos variables de type int ou double.
Additionner
La première opération que vous pouvez réaliser est bien sûr l’addition, symbolisée par un + :
int quatre = 4;
int deux = 2;
print(quatre + deux);
↪ 4
Soustraire
Vient ensuite la soustraction qui est quant à elle symbolisée par un – :
int quatre = 4;
int deux = 2;
print(quatre - deux);
↪ 2
Incrémenter
Incrémenter veut dire augmenter un chiffre de 1. Réaliser ce genre d’opération peut être pratique dans certains cas, par exemple quand on tient un compte. Elle est symbolisée par un double +:
int chiffre = 4;
chiffre++;
print(chiffre);
↪ 5
Décrémenter
Décrémenter au contraire veut dire retirer 1 à un chiffre. Par exemple, on peut l’utiliser pour un compte à rebours. La décrémentation est symbolisée par deux signes – :
int chiffre = 4;
chiffre --;
print(chiffre);
↪ 3
Multiplier
Pour multiplier deux valeurs numériques, vous pouvez utiliser le symbole * :
int quatre = 4;
int deux = 2;
print(quatre * deux);
↪ 8
Diviser
Le signe diviser quant à lui est symbolisé par un / :
int quatre = 4;
int deux = 2;
print(quatre / deux);
↪ 2
Obtenir le reste d’une division
Enfin, le symbole % (appelé modulo), vous permet de récupérer le reste d’une division. Cela peut être utile dans certains cas, par exemple pour définir si un nombre est pair ou impair (s’il est pair, mon résultat sera 0 si je divise par 2) :
int cinq = 5;
int deux = 2;
print(cinq % deux);
↪ 1
Propriétés à utiliser avec des variables int ou double
Voici quelques propriétés pouvant être utilisées avec vos valeurs numériques.
Savoir si un nombre est négatif
La propriété isNegative vous permet de savoir si votre nombre est négatif ou pas. Si c’est le cas, le résultat renvoyé sera true :
int cinq = 5;
print(cinq.isNegative);
↪ false
À l’inverse, la propriété isNan renverra true si la valeur est positive :
int cinq = 5;
print(cinq.isNan);
↪ true
Enfin, une dernière manière de connaître le signe d’un chiffre est d’utiliser la propriété sign. Celle-ci renverra un résultat de 1, 0 ou -1 selon la valeur. Une valeur positive renverra 1, 0 renverra 0 et une valeur négative renverra -1.
int cinq = 5;
print(cinq.sign);
↪ 1
Savoir si un nombre est fini
Pour savoir si la valeur contenue dans une variable de type int ou double est finie, vous pouvez utiliser la propriété isFinite :
int cinq = 5;
print(cinq.isFinite);
↪ true
À l’inverse, la propriété isInfinite renverra true si la valeur que vous lui donnez est bien infinie :
int cinq = 5;
print(cinq.isInfinite);
↪ false
Savoir si un nombre est pair ou impaire
Enfin, vous pouvez savoir si un nombre est pair ou impair, grâce aux fonctions isEven (pair) et isOdd (impair) :
int cinq = 5;
print(cinq.isEven);
print(cinq.isOdd);
↪ false
↪ true
Méthodes de Flutter en lien avec les int et les doubles
Voici une liste non exhaustive de méthodes pouvant être utilisées avec vos variables de type int ou double.
Arrondir un double
La méthode .round() (arrondi) vous permet d’arrondir un nombre décimal, à sa valeur absolue la plus proche. Par exemple :
double pi = 3.14;
print(pi.round());
↪ 3
Il existe aussi la méthode .ceil() (plafond) vous permettant d’arrondir un nombre décimal à sa valeur supérieure. Par exemple :
double pi = 3.14;
print(pi.ceil());
↪ 4
Au contraire, .floor() (plancher) arrondi votre nombre à la valeur absolue inférieure. Par exemple :
double myNumber = 3.90;
print(myNumber.floor());
↪ 3
Obtenir la valeur absolue d’un nombre
Par valeur absolue, on entend ici, la valeur positive d’un nombre. Par exemple 3 serait la valeur absolue de -3 (ou de 3, mais pas grand intérêt d’utiliser une méthode du coup). Pour obtenir cette valeur, Flutter met à notre disposition la méthode .abs() :
int myNumber = -10;
print(myNumber.abs());
↪ 10
Trouver le plus grand diviseur commun entre deux nombres
Pour trouver le plus grand diviseur commun entre deux nombres, vous pouvez utiliser la méthode .gcd(). Celle-ci prend comme arguments les deux nombres que vous voulez comparer :
print(4.gcd(2));
print(8.gcd(4));
↪ 2
↪ 4
Conclusion
Vous êtes désormais capable de déclarer et manipuler des variables de type Int ou Double. Pourquoi ne pas continuer en apprenant à créer des listes ?