Maison  >  Article  >  développement back-end  >  Journal d'apprentissage C# 06 --- Type de données de type nombre à virgule flottante

Journal d'apprentissage C# 06 --- Type de données de type nombre à virgule flottante

黄舟
黄舟original
2017-01-20 13:29:061863parcourir

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 :

Journal dapprentissage C# 06 --- Type de données de type nombre à virgule flottante

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 :

Journal dapprentissage C# 06 --- Type de données de type nombre à virgule flottante

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) !


Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn