首頁  >  文章  >  後端開發  >  C#學習日記06---資料類型 之 浮點數類型

C#學習日記06---資料類型 之 浮點數類型

黄舟
黄舟原創
2017-01-20 13:29:061866瀏覽

數值類型之浮點數類型:

  在我們的日常生活中不僅有整數 ,還存在小數,在C#中小數有2種數據類型來表示  (單精度)float 、(雙精度)double。

他們的差別在於取值範圍與精度不同,計算機對浮點數的運算速度大大低於對整數的運算速度,對double型的運算速度低於對float的運算速度,如果在程序中大量的使用雙精度類浮點數,將會佔用更多的記憶體單元,而電腦的處理任務也會更加繁重,但是用double類型的結果相對於float會更加精確,因此在對精度要求不是很高的情況下我們可以採用float 類型。

單精確度(float)類型:  取值範圍在正負 1.5*10^-45  到  3.4*10^38 之間,精確度為7到8位元數字;

雙精確度(double)類型: 取值範圍類型在正負5.0*10^-324  到  1.7*10^308 之間  精確度為15到16位數字;

我寫個程序來區分下:

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

結果對比:

我寫個程序來區分下:

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"  表示换行  
  
  
        }  
    }  
}
C#學習日記06---資料類型 之 浮點數類型結果對比:

我認真數了一下float 的結果有8位其中7位是數字;double 的結果有16位其中15位是數字3;

本著反思的態度我又反思到了float 與double 的屬性,float 的範圍不是在 正負 1.5*10^-45  到  3.4*10^38 之間 的嗎?至少可以表示38位數字啊,這才7位, double 至少可以表示300多位數字啊,這才16位,我寫的是10/3 結果應該有38個3,或300多個3 才對啊? ? ?為什麼? ? ?是不是 在第9位與 第 17位的時候四捨五入了? 我又寫了以下程式碼:

rrreee

結果是這樣:

C#學習日記06---資料類型 之 浮點數類型

果然在float 的第8位是4捨去變為了0省略掉,double 的第16位本來是4,由於17位是5所以加1,後面為0省略。 。

以上就是C#學習日記06---資料類型 之 浮點數類型的內容,更多相關內容請關注PHP中文網(www.php.cn)!


🎜
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn