Exercice – Découvrir les types à virgule flottante
- 8 minutes
Dans cet exercice, vous travaillez avec des types de données à virgule flottante pour en savoir plus sur les différences nuances entre chaque type de données.
Un virgule flottante est un type valeur simple qui représente des nombres à droite de la décimale. Contrairement aux nombres intégraux, il existe d’autres considérations au-delà des valeurs maximales et minimales que vous pouvez stocker dans un type à virgule flottante donnée.
Évaluer les types à virgule flottante
Tout d’abord, vous devez prendre en compte les chiffres de précision que chaque type autorise. La précision est le nombre de places de valeur stockées après la virgule décimale.
Ensuite, vous devez prendre en compte la façon dont les valeurs sont stockées et l’impact sur la précision de la valeur. Par exemple, float et double les valeurs sont stockées en interne dans un format binaire (base 2), tandis qu’elles decimal sont stockées dans un format décimal (base 10). Pourquoi cela compte-t-il ?
Effectuer des calculs sur des nombres à virgule flottante binaire peut produire des résultats qui pourraient vous étonner si vous êtes habitué aux calculs décimaux (base 10). Souvent, la mathématique à virgule flottante binaire est une approximation de la valeur réelle. Par conséquent, float et double sont utiles, car de grands nombres peuvent être stockés à l’aide d’une petite empreinte mémoire. Toutefois, float et double ne doit être utilisé que lorsqu’une approximation est utile. Par exemple, une erreur de quelques millièmes dans le calcul des éclaboussures causées par une boule de neige dans un jeu vidéo fournit un résultat suffisamment proche.
Lorsque vous avez besoin d’une réponse plus précise, vous devez utiliser decimal. Chaque valeur de type decimal a une empreinte mémoire relativement importante, mais l’exécution d’opérations mathématiques vous donne un résultat plus précis. Par conséquent, vous devez utiliser decimal lors de l’utilisation de données financières ou de tout scénario où vous avez besoin d’un résultat précis à partir d’un calcul.
Utiliser les propriétés MinValue et MaxValue pour chaque type float signé
Supprimez ou utilisez l’opérateur de commentaire de ligne
//pour commenter tout le code des étapes précédentes.Pour afficher les plages de valeurs des différents types de données, mettez à jour votre code dans Visual Studio Code Editor comme suit :
Console.WriteLine("");
Console.WriteLine("Floating point types:");
Console.WriteLine($"float : {float.MinValue} to {float.MaxValue} (with ~6-9 digits of precision)");
Console.WriteLine($"double : {double.MinValue} to {double.MaxValue} (with ~15-17 digits of precision)");
Console.WriteLine($"decimal: {decimal.MinValue} to {decimal.MaxValue} (with 28-29 digits of precision)");
Dans le menu Fichier de Visual Studio Code, sélectionnez Enregistrer.
Le fichier Program.cs doit être enregistré avant de générer ou d’exécuter le code.
Dans le panneau EXPLORATEUR, pour ouvrir un Terminal à l’emplacement de votre dossier TestProject, cliquez avec le bouton droit sur TestProject, puis sélectionnez Ouvrir dans le Terminal intégré.
Un panneau terminal doit s’ouvrir et inclure une invite de commandes indiquant que le terminal est ouvert à l’emplacement de votre dossier TestProject.
À l’invite de commande du terminal, pour exécuter votre code, tapez dotnet run, puis appuyez sur Entrée.
Si vous voyez un message indiquant « Impossible de trouver un projet à exécuter », vérifiez que l’invite de commandes terminal affiche l’emplacement attendu du dossier TestProject. Par exemple :
C:\Users\someuser\Desktop\csharpprojects\TestProject>La sortie suivante doit s’afficher :
Floating point types: float : -3.402823E+38 to 3.402823E+38 (with ~6-9 digits of precision) double : -1.79769313486232E+308 to 1.79769313486232E+308 (with ~15-17 digits of precision) decimal: -79228162514264337593543950335 to 79228162514264337593543950335 (with 28-29 digits of precision)
Comme vous pouvez le voir, float et double utilisent une notation différente de celle utilisée par decimal pour représenter ses valeurs les plus grandes et les plus petites possibles. Mais que signifie cette notation ?
Interprétation des grandes valeurs à virgule flottante
Étant donné que les types à virgule flottante peuvent contenir de grands nombres avec précision, leurs valeurs peuvent être représentées à l’aide de la « notation E », qui est une forme de notation scientifique qui signifie « fois 10 élevés au pouvoir de ». Par conséquent, une valeur similaire 5E+2 serait la valeur 500, car elle est l’équivalent de 5 * 10^2, ou 5 x 102.
Récapitulatif
- Un type à virgule flottante est un type de données valeur simple qui peut contenir des nombres fractionnels.
- Le choix du type à virgule flottante appropriée pour votre application vous oblige à prendre en compte plus que les valeurs maximales et minimales qu’elle peut contenir. Vous devez également prendre en compte le nombre de valeurs qui peuvent être conservées après la décimale, la façon dont les nombres sont stockés et la façon dont leur stockage interne affecte le résultat des opérations mathématiques.
- Les valeurs à virgule flottante peuvent parfois être représentées à l’aide de la « notation E » lorsque les nombres augmentent particulièrement grand.
- Il existe une différence fondamentale dans la façon dont le compilateur et le runtime gèrent
decimalpar opposition oufloatdouble, en particulier lorsque vous déterminez la précision nécessaire à partir d’opérations mathématiques.
Vérifier vos connaissances
Commentaires
Cette page a-t-elle été utile ?
No
Vous avez besoin d’aide pour cette rubrique ?
Vous souhaitez essayer d’utiliser Ask Learn pour clarifier ou vous guider dans cette rubrique ?