Maison > Article > développement back-end > Journal d'apprentissage C# 06 --- Type de données de type nombre à virgule flottante
Type de nombre à virgule flottante de type numérique :
Dans notre vie quotidienne, il n'y a pas que des entiers, mais aussi des décimales. En C#, il existe deux types de données pour les décimales : (simple précision) float, (. double précision) )double.
La différence réside dans la plage de valeurs et la précision. La vitesse de calcul de l'ordinateur pour les nombres à virgule flottante est bien inférieure à celle des nombres entiers, et la vitesse de calcul pour les types doubles est inférieure à celle des flottants. le programme L'utilisation intensive de nombres à virgule flottante double précision occupera plus d'unités de mémoire et les tâches de traitement de l'ordinateur seront plus ardues. Cependant, les résultats utilisant des types doubles seront plus précis que les nombres flottants, les exigences de précision ne sont donc pas très élevées. . Dans ce cas, nous pouvons utiliser le type float.
Type simple précision (flottant) : la plage de valeurs est comprise entre plus et moins 1,5*10^-45 à 3,4*10^38, et la précision est de 7 à 8 chiffres
Double ; Type de précision (double) : La plage de valeurs est comprise entre plus et moins 5,0*10^-324 à 1,7*10^308. La précision est de 15 à 16 chiffres
J'écrirai un programme pour distinguer :
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Example { class Program { static void Main(string[] args) {//同一类型在同一行定义时 用 , 分开 float a = 3.0f,b = 10.0f; //这里注意定义float时 加上f/F 应为默认小数是double类型 float c = b / a; //相除 double d = 3.0, e = 10.0; double f = e/d; Console.WriteLine("float c={0}\ndouble f={1}",c,f); //输出 "\n" 表示换行 } } }
Comparaison des résultats :
Dans un esprit réaliste, j'ai soigneusement compté le résultat de float, il y a 8 chiffres dont 7 sont des nombres ; le résultat du double est 16 Parmi eux, 15 chiffres sont le nombre 3
Dans une attitude réfléchie, j'ai réfléchi sur les attributs du float et du double La plage du float n'est pas comprise entre plus ou moins 1,5*; 10^-45 à 3,4*10^38 De ? Il peut représenter au moins 38 chiffres, soit seulement 7 chiffres. Double peut au moins représenter plus de 300 chiffres, soit seulement 16 chiffres. Ce que j'ai écrit est 10/3. Le résultat devrait être 38 3, ou plus de 300 3. . C'est exact. ? ? ? Pourquoi? ? ? S'agit-il d'un arrondi entre le 9e et le 17e chiffre ? J'ai réécrit le code suivant :
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Example { class Program { static void Main(string[] args) { float a = 3.333334444333333f; //第8位(小数点也算一位)开始是4,第9位是4 double d = 3333333333333.3455555544; //第16位是4,17位是5 Console.WriteLine("float c={0}\ndouble f={1}",a,d); //输出 "\n" 表示换行 } } }
Le résultat est le suivant :
Effectivement, la 8ème position de float est 4 arrondie et modifiée en 0 omis. En sortie, le 16ème bit de double est à l'origine 4. Puisque le 17ème bit est 5, 1 est ajouté et le 0 suivant est omis. .
Ce qui précède est le contenu du journal d'apprentissage C# 06 --- Type de données - Type de nombre à virgule flottante Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !