English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

C# 数字型(Number)

通常、数字は整数型と浮点型の2つの種類に分けられます。

整数型は小数点を持たない整数です。それは負のまたは正の数字でできます。

浮動小数点型は小数点を持つ数字です。それは負のまたは正の数字でできます。

C#はメモリ上のサイズと数字を格納する能力に基づいて、整数型と浮点型に異なるデータ型を含んでいます。

以下の図はC#の数字型を示しています。

数値型

整数型

整数型の数字は小数点を持つ正のまたは負の整数です。C#には整数に使用されるデータ型が4種類あります:バイト、ショート、インテジャ、ロング(byte、short、int、long)。

byte

バイトデータ型は0から255の数字を格納できます。それはメモリ上で8ビットです。byteキーワードは.NETのByte構造の別名です。

sbyteはbyteと同じですが、以下のものを格納できます-128まで127の間の負の数です。sbyteキーワードは.NETのSByte構造の別名です。

byte b1 = 255;
byte b2 = -128;// uint ui -128"は"バイト"に変換できません。
sbyte sb1 = -128; 
sbyte sb2 = 127; 
Console.WriteLine(Byte.MaxValue);//255
Console.WriteLine(Byte.MinValue);//0
Console.WriteLine(SByte.MaxValue);//127
Console.WriteLine(SByte.MinValue);//-128

short

shortデータ型は符号付き整数で、以下のものを格納できます-32,768まで32,767の間の数字を格納できます。それは16ビットのメモリを格納できます。shortキーワードは.NETのInt16構造のエイリアスです。

ushortデータ型は無符号整数です。それは0から65535の間の正の数です。ushortキーワードは.NETのUInt16構造のエイリアスです。

short s1 = -32768;
short s2 = 32767;
short s3 = 35000;//uint ui 35"000"は"short"に変換できません。
ushort us1 = 65535;
ushort us2 = -32000; //uint ui -32"000"は"ushort"に変換できません。
Console.WriteLine(Int16.MaxValue);//32767
Console.WriteLine(Int16.MinValue);//-32768
Console.WriteLine(UInt16.MaxValue);//65535
Console.WriteLine(UInt16.MinValue);//0

int

intデータ型は32ビットの符号付き整数です。それは ±-2,147,483,648まで2,147,483,647の数字です。intキーワードは.NETのInt32構造のエイリアスです。

uintは32ビットの無符号整数を格納できます。uintキーワードは.NETのUInt32の別名です。それは0から4,294,967,295の正の数。(オプション)数字の後にUまたはu修飾子を使用してuint変数に割り当てます。

int i = -2147483648;
int j = 2147483647;
int k = 4294967295; //コンパイル時エラー:型'uint'を'int'に暗黙的に変換できません。
uint ui1 = 4294967295;
uint ui2 =-1; //uint ui -1コンパイル時エラー:定数値“
Console.WriteLine(Int32.MaxValue);//2147483647
Console.WriteLine(Int32.MinValue);//-2147483648
Console.WriteLine(UInt32.MaxValue);//4294967295
Console.WriteLine(UInt32.MinValue);//0

”は“ uint”に変換できません7.2から始まります。二進数は 0b または 0B で始まります。C#では、十六進数や二進数も int データ型で使用されます。十六進数は 0x または 0X で始まります。

int hex = 0x2F;
int binary = 0b_0010_1111;
Console.WriteLine(hex);
Console.WriteLine(binary);

long

long 型は64ビットの符号付き整数です。それは ±-9,223,372,036,854,775,808まで9,223,372,036,854,775,807の数字を保存します。数字の接尾辞が l または L ならば、それを long 型変数に割り当てます。long キーワードは .NET での Int64構造のエイリアスです。

ulong 型は 0 から18,446,744,073,709,551,615の正数。もし数字の接尾辞が UL、Ul、uL、ul、LU、Lu、lU、lu ならば、その型は ulong です。uint キーワードは .NET での UInt64構造のエイリアスです。

long l1 = -9223372036854775808;
long l2 = 9223372036854775807;
ulong ul1 = 18223372036854775808ul;
ulong ul2 = 18223372036854775808UL;
Console.WriteLine(Int64.MaxValue);//9223372036854775807
Console.WriteLine(Int64.MinValue);//-9223372036854775808
Console.WriteLine(UInt64.MaxValue);//18446744073709551615
Console.WriteLine(UInt64.MinValue);//0

浮動小数点型

浮動小数点数は、一つまたは複数の小数点を持つ正数または負数です。C#には、浮動小数点数、双精度数、小数(float、double、decimal)の三种の浮動小数点数データ型があります。

float

float データ型は ±3.4ee038まで3.4e + 038の分数。それはメモリ内で4バイト。float キーワードは .NET での Single 構造のエイリアスです。

テキスト付きの f または F フラグを使用して、浮動小数点型にします。

float f1 = 123456.5F;
float f2 = 1.123456f;
Console.WriteLine(f1);//123456.5
Console.WriteLine(f2);//1.123456

double

double データ型は ±1.7eˆ308まで1.7e + 308の小数。それはメモリ内で8バイト。double キーワードは .NET での Double 構造のエイリアスです。

テキスト付きの d または D フラグを使用して、双精度型にします。

double d1 = 12345678912345.5d;
double d2 = 1.123456789123456d;
Console.WriteLine(d1);//12345678912345.5
Console.WriteLine(d2);//1.123456789123456

decimal

decimal データ型は ±1.0 x 10-28から±7.9228 x 1028の小数。それはメモリ内で16バイト。decimal は .NET での Decimal 構造のキーワードエイリアスです。

decimal 型は、浮動小数点や双精度型よりも高い精度と小さい範囲を持っているため、財務や貨幣計算に適しています。

テキスト付きの m または M フラグを使用して、decimal 型にします。

decimal d1 = 123456789123456789123456789.5m;
decimal d2 = 1.1234567891345679123456789123m;
Console.WriteLine(d1);
Console.WriteLine(d2);

科学記数法

eまたはEを使用して表現します10の冪、科学記数法の指数部分として、浮動小数点数、双精度数または小数を使用します。

double d = 0.12e2;
Console.WriteLine(d);  // 12;
float f = 123.45e-2f;
Console.WriteLine(f);  // 1.2345
decimal m = 1.2e6m;
Console.WriteLine(m);// 1200000