ホームページ >バックエンド開発 >C#.Net チュートリアル >C#学習日記06---浮動小数点数型のデータ型
数値型の浮動小数点型:
私たちの日常生活では、整数だけでなく小数点も存在します。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" 表示换行 } } }
結果は次のとおりです:
案の定、float の 8 桁目は 4 で、0 に丸められています。double の 16 桁目は元々 4 ですが、省略されています。 17 桁目は 5 なので、1 を追加し、次の 0 を省略します。 。
上記は C# 学習日記 06 ---データ型 - 浮動小数点数型の内容です。その他の関連コンテンツについては、PHP 中国語 Web サイト (www.php.cn) をご覧ください。