>  기사  >  백엔드 개발  >  C# 학습일지 06---부동소수점수 유형의 데이터 유형

C# 학습일지 06---부동소수점수 유형의 데이터 유형

黄舟
黄舟원래의
2017-01-20 13:29:061867검색

숫자 유형의 부동 소수점 숫자 유형:

우리 일상 생활에는 정수뿐만 아니라 소수도 있습니다. C#에는 소수에 대한 두 가지 데이터 유형이 있습니다: (단정밀도) float, ( 배정밀도) ) 배정밀도.

차이는 값 범위와 정밀도에 있습니다. 부동 소수점 숫자의 계산 속도는 정수의 계산 속도보다 훨씬 낮고, double 유형의 계산 속도는 부동 소수점의 계산 속도보다 느립니다. 프로그램에서 배정밀도 부동 소수점 숫자를 광범위하게 사용하면 더 많은 메모리 단위를 차지하고 컴퓨터의 처리 작업이 더 힘들어집니다. 그러나 double 유형을 사용하는 결과는 부동 소수점보다 더 정확하므로 정밀도 요구 사항은 그리 높지 않습니다. . 이 경우 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"  表示换行  
  
  
        }  
    }  
}

결과 비교:

C# 학습일지 06---부동소수점수 유형의 데이터 유형

실제적으로 float 결과를 세어보니 8자리이고 그중 7자리는 숫자입니다. 결과는 16자리인데 그 중 15번째 자리는 숫자 3입니다.

성찰적으로 float와 double의 속성을 반성해보면 플러스와 마이너스 사이의 범위는 1.5*10이 아닐까요? ^-45에서 3.4*10^38? 최소한 38자리, 즉 7자리만 표현할 수 있습니다. Double은 최소한 300자리 이상, 즉 16자리만 나타낼 수 있습니다. 결과는 38개, 즉 300개 이상이 되어야 합니다. . 좋아요. ? ? ? 왜? ? ? 9자리와 17자리 사이에서 반올림되나요? 다음 코드를 작성했습니다.

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번째 비트는 4이고 0으로 반올림되었습니다. double의 16번째 비트는 원래 4입니다. 17번째 비트는 5이므로 1이 추가되고, 다음의 0은 생략됩니다. .

위 내용은 C# 학습일지 06---데이터형 - 부동소수점수형 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.