Heim  >  Artikel  >  Backend-Entwicklung  >  C#-Lerntagebuch 06 --- Datentyp vom Typ Gleitkommazahl

C#-Lerntagebuch 06 --- Datentyp vom Typ Gleitkommazahl

黄舟
黄舟Original
2017-01-20 13:29:061808Durchsuche

Gleitkommazahlentyp vom numerischen Typ:

In unserem täglichen Leben gibt es nicht nur ganze Zahlen, sondern auch Dezimalzahlen. In C# gibt es zwei Datentypen für Dezimalzahlen: (einfache Genauigkeit) float, ( doppelte Präzision) )double.

Der Unterschied liegt im Wertebereich und in der Genauigkeit. Die Rechengeschwindigkeit des Computers ist für Gleitkommazahlen viel geringer als für Ganzzahlen und die Rechengeschwindigkeit für Double-Typen ist geringer als für Gleitkommazahlen Das Programm wird durch die umfangreiche Verwendung von Gleitkommazahlen mit doppelter Genauigkeit mehr Speichereinheiten beanspruchen und die Verarbeitungsaufgaben des Computers werden anspruchsvoller. Allerdings sind die Ergebnisse bei Verwendung von Gleitkommazahlen mit doppelter Genauigkeit genauer als bei Gleitkommazahlen, sodass die Genauigkeitsanforderungen nicht sehr hoch sind . In diesem Fall können wir den Float-Typ verwenden.

Typ mit einfacher Genauigkeit (Float): Der Wertebereich liegt zwischen plus und minus 1,5*10^-45 und 3,4*10^38, und die Genauigkeit beträgt 7 bis 8 Stellen.

Doppelt Präzisionstyp (doppelt): Der Wertebereich liegt zwischen plus und minus 5,0*10^-324 bis 1,7*10^308. Die Genauigkeit beträgt 15 bis 16 Stellen; 🎜>

Vergleich der Ergebnisse:

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"  表示换行  
  
  
        }  
    }  
}

Im realistischen Sinne habe ich das Ergebnis von float sorgfältig gezählt, es gibt 8 Ziffern, davon 7 Zahlen ; das Ergebnis von double ist 16. Die 15. Ziffer ist die Zahl 3; C#-Lerntagebuch 06 --- Datentyp vom Typ Gleitkommazahl

In einer nachdenklichen Haltung habe ich über die Eigenschaften von float und double nachgedacht. Der Bereich von float liegt nicht zwischen plus oder minus 1,5*10^ -45 bis 3,4*10^38 Von? Es kann mindestens 38 Ziffern darstellen, also nur 7 Ziffern. Double kann mindestens 300 Ziffern darstellen, also nur 16 Ziffern. Das Ergebnis sollte 38 3 sein, also mehr als 300 3 . Das stimmt. ? ? Warum? ? ? Wird zwischen der 9. und 17. Ziffer gerundet? Ich habe den folgenden Code noch einmal geschrieben:

Das Ergebnis ist dieses:

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"  表示换行  
  
  
        }  
    }  
}

Natürlich ist die 8. Position von Float auf 4 gerundet und wurde in geändert 0 weggelassen. Das 16. Bit von Double ist ursprünglich 4. Da das 17. Bit 5 ist, wird 1 hinzugefügt und die folgende 0 weggelassen. . C#-Lerntagebuch 06 --- Datentyp vom Typ Gleitkommazahl

Das Obige ist der Inhalt von C# Learning Diary 06 --- Datentyp – Gleitkommazahltyp. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn