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

Types numériques C# (Number)

Généralement, les nombres peuvent être divisés en deux types : types de nombres entiers et types de nombres flottants.

Types de nombres entiersUn nombre est un entier sans virgule décimale. Il peut être négatif ou positif.

Types flottantsEst un nombre avec un ou plusieurs points décimaux. Il peut être négatif ou positif.

C# inclut différents types de données pour les types de nombres entiers et flottants en fonction de leur taille en mémoire et de leur capacité à stocker des nombres.

La figure ci-dessous explique les types de nombres dans C#.

Types de nombres

Types de nombres entiers

Les types de nombres entiers sont des nombres entiers avec des virgules décimales, positifs ou négatifs. C# inclut quatre types de données entiers : octet, court, entier et long (byte, short, int, long).

byte

Le type de données byte stocke les nombres entiers de 0 à255Le nombre. Il occupe8Bits. Le mot-clé byte est l'alias de la structure Byte dans .NET.

comme byte, mais il peut stocker-128à127entre les nombres négatifs. Le mot-clé sbyte est l'alias de la structure SByte dans .NET.

byte b1 = 255;
byte b2 = -128;// 编译时错误:常量值“ -128"" ne peut pas être converti en "octet"
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

Le type de données short est un entier signé. Il peut stocker-32,768à32,767entre les nombres. Il occupe16Bits de mémoire. Le mot-clé short est dans .NET le type de données Int16.16est un alias de la structure.

Le type de données ushort est un entier non signé. Il ne peut stocker que de 0 à65535entre les nombres positifs. Le mot-clé ushort est dans .NET l'alias de UInt16.16est un alias de la structure.

short s1 = -32768;
short s2 = 32767;
short s3 = 35000;//编译时错误:常量值“ 35"000" ne peut pas être converti en "short"
ushort us1 = 65535;
ushort us2 = -32000; //编译时错误:常量值“ -32"000" ne peut pas être converti en "ushort"
Console.WriteLine(Int16.MaxValue);//32767
Console.WriteLine(Int16.MinValue);//-32768
Console.WriteLine(UInt16.MaxValue);//65535
Console.WriteLine(UInt16.MinValue);//0

int

Le type de données int est32long type est-2,147,483,648à2,147,483,647Le nombre. Le mot-clé int est dans .NET le type de données Int32.32est un alias de la structure.

uint est32Bits entiers non signés. Le mot-clé uint est dans .NET le alias de UInt32.32Alias de structure. Il peut stocker de 0 à4,294,967,295Le nombre positif. (Optionnel) Utilisez l'anneau U ou u après le nombre pour l'affecter à une variable uint.

int i = -2147483648;
int j = 2147483647;
int k = 4294967295; //Erreur à la compilation : impossible de convertir implicitement le type 'uint' en 'int'.
uint ui1 = 4294967295;
uint ui2 =-1; //编译时错误:常量值“ -1uint ui
Console.WriteLine(Int32.MaxValue);//2147483647
Console.WriteLine(Int32.MinValue);//-2147483648
Console.WriteLine(UInt32.MaxValue);//4294967295
Console.WriteLine(UInt32.MinValue);//0

Erreur de compilation : valeur constante“7.2”ne peut pas être converti en“ uint”

Exemple : hexadécimal, binaire2F;
int hex = 0x10int binary = 0b_001111;
_
Console.WriteLine(hex);

Console.WriteLine(binary);

long64long type est-9,223,372,036,854,775,808à9,223,372,036,854,775,807bits de nombre entier signé. Il peut stocker de64est un alias de la structure.

Le type ulong stocke les nombres de18,446,744,073,709,551,615Les nombres positifs. Si l'anneau de suffixe est UL, Ul, uL, ul, LU, Lu, lU ou lu, alors son type est ulong. Le mot-clé uint est un alias de la structure UInt64est un alias de la structure.

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

Types flottants

Les nombres flottants sont des nombres positifs ou négatifs avec un ou plusieurs points décimaux. C# inclut trois types de nombres flottants : nombre flottant, double précision et decimal (float, double, decimal).

float

Le type de données float peut stocker de3.4ee038à3.4e + 038de la fraction. Il occupe4octets. Le mot-clé float est un alias de la structure Single dans .NET.

En utilisant l'extension de texte f ou F pour le rendre de type flottant.

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

double

Le type de données double peut stocker de1.7eˆ308à1.7e + 308décimal. Il occupe8octets. Le mot-clé double est un alias de la structure Double dans .NET.

En utilisant l'extension de texte d ou D pour le rendre de type double précision.

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

decimal

Le type de données decimal peut stocker de ±1.0 x 10-28à ±7.9228 x 1028décimal. Il occupe16octets. Decimal est un alias de la structure Decimal dans .NET.

Le type decimal a une précision supérieure et une plage plus petite que les types flottants et double précision, donc il est adapté aux calculs financiers et monétaires.

En utilisant l'extension de texte m ou M pour le rendre de type decimal.

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

Notation scientifique

Utilisez e ou E pour représenter10Puissance, en tant qu'exponentiel de la notation scientifique, utilise des nombres à virgule flottante, des nombres à double précision ou des décimaux.

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