C#学習日記06---浮動小数点数型のデータ型

黄舟
リリース: 2017-01-20 13:29:06
オリジナル
1871 人が閲覧しました

数値型の浮動小数点型:

私たちの日常生活では、整数だけでなく小数点も存在します。C# では、小数点には (単精度) float と (倍精度) double の 2 つのデータ型があります。

それらの違いは、値の範囲と精度が異なることです。浮動小数点数のコンピューターの計算速度は整数の計算速度よりもはるかに遅く、double 型の計算速度は浮動小数点数の計算速度よりも低くなります。倍精度浮動小数点数はより多くのメモリ ユニットを占有し、コンピュータの処理タスクはより困難になります。ただし、精度の要件がそれほど高くない場合は、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 桁です。 float の結果は 8 桁で、そのうち 7 桁が数値であることを注意深く数えました。double の結果は 16 桁で、そのうち 15 桁が 3 桁であることを確認しました

、floatの範囲はプラスマイナス1.5*10^-45から3.4*10^38の間ではないでしょうか?これは少なくとも 38 桁を表現できますが、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.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 桁目は 4 で、0 に丸められています。double の 16 桁目は元々 4 ですが、省略されています。 17 桁目は 5 なので、1 を追加し、次の 0 を省略します。 。

上記は C# 学習日記 06 ---データ型 - 浮動小数点数型の内容です。その他の関連コンテンツについては、PHP 中国語 Web サイト (www.php.cn) をご覧ください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート