Section courante

A propos

Section administrative du site

 Langage  Installation  Elément  Tutoriel  Programmation  Bibliothèque  Cadre d'application  SDK  Gabarit  Projet  IDE  Outils  Annexe  Aide 
ABAP/4
Ada
Assembleur
Assembly & bytecode
ASP (Active Server Pages)
Basic
C
C++
C# (C Sharp)
Cobol
ColdFusion
Fortran
HTML
Java
JavaScript
LISP
Logo
LotusScript
Oberon
Pascal
Perl
PHP
PL/1
Prolog
Python
Rebol
REXX
Ruby
Rust
SAS
NoSQL
SQL
Swift
X++ (Axapta)
GNAT
SMALLAda
VHDL
Assembleur 370
Assembleur 1802
Assembleur 4004
Assembleur 6502
Assembleur 6800
Assembleur 68000
Assembleur 8080 et 8085
Assembleur 8089
Assembleur 80x86
Assembleur AGC4
Assembleur ARM
Assembleur DPS 8000
Assembleur i860
Assembleur Itanium
Assembleur MIPS
Assembleur PDP-11
Assembleur PowerPC
Assembleur RISC-V
Assembleur SPARC
Assembleur SuperH
Assembleur UNIVAC I
Assembleur VAX
Assembleur Z80
Assembleur Z8000
Assembleur z/Architecture
ASSEMBLER/MONITOR 64
Micol Assembler
GFA Assembler
A86
MASM (Macro Assembler)
TASM (Turbo Assembler)
CIL
Jasmin
LLVM
MSIL
Parrot
P-Code (PCode)
SWEET16
G-Pascal
ASP 1.0
ASP 2.0
ASP 3.0
ASP.NET
ASP.NET Core
ABasiC (Amiga)
Adam SmartBASIC
Altair BASIC
AmigaBASIC (Amiga)
AMOS Basic (Amiga)
Atari Basic (Atari 400, 600 XL, 800, 800XL)
Basic Apple II (Integer BASIC/APPLESOFT)
Basic Commodore 64 (CBM-BASIC)
Basic Commodore 128 (BASIC 7.0)
Basic Commodore VIC-20 (CBM-BASIC 2.0)
Basic Coco 1 (Color Basic)
Basic Coco 2 (Extended Color Basic)
Basic Coco 3 (Extended Color Basic 2.0)
BASICA (PC DOS)
Basic Pro
BBC BASIC
Blitz BASIC (Amiga)
DarkBASIC
Dartmouth BASIC
GFA-Basic (Atari ST/Amiga)
GWBASIC (MS-DOS)
Liberty BASIC
Locomotive BASIC (Amstrad CPC)
MSX-Basic
Omikron Basic (Atari ST)
Oric Extended Basic
Power Basic
Quick Basic/QBasic (MS-DOS)
Sinclair BASIC (ZX80, ZX81, ZX Spectrum)
ST BASIC (Atari ST)
Turbo Basic
Vintage BASIC
VBScript
Visual Basic (VB)
Visual Basic .NET (VB .NET)
Visual Basic pour DOS
Yabasic
BeckerBASIC
SIMONS' BASIC
Basic09 d'OS-9
Disk Extended Color Basic
Basic09 d'OS-9
Disk Extended Color Basic
Access
Excel
Visual Basic pour Windows
Visual Basic .NET pour Windows
C Shell Unix (csh)
C pour Amiga
C pour Atari ST
C pour DOS
C pour Falcon030
C pour GEMDOS (Atari ST)
C pour Linux
C pour PowerTV OS
C pour OS/2
C pour Unix
C pour Windows
Aztec C
CoCo-C
GNU C
HiSoft C
IBM C/2
Introl-C
Lattice C
Microsoft C
MinGW C
MSX-C
Open Watcom C
OS-9 C Compiler
Pure C
Quick C
Turbo C
HiSoft C for Atari ST
HiSoft C for CP/M (Amstrad CPC)
C++ pour OS/2
C++ pour Windows
Borland C++
C++Builder
IBM VisualAge C++
Intel C++
MinGW C++
Open Watcom C++
Symantec C++
Turbo C++
Visual C++
Visual C++ .NET
Watcom C++
Zortech C++
C# (C Sharp) pour Windows
Apple III Cobol
Microsoft Cobol
BlueDragon
Lucee
OpenBD
Railo
Smith Project
Microsoft Fortran
WATFOR-77
CSS
FBML
Open Graph
SVG
XML
XSL/XSLT
LESS
SASS
GCJ (GNU)
JSP
Jython
Visual J++
Node.js
TypeScript
AutoLISP
ACSLogo
LotusScript pour Windows
Amiga Oberon
Oberon .NET
Apple Pascal
Delphi/Kylix/Lazarus
Free Pascal
GNU Pascal
HighSpeed Pascal
IBM Personal Computer Pascal
Lisa Pascal
Maxon Pascal
MPW Pascal
OS-9 Pascal
OSS Personal Pascal
Pascal-86
Pascal du Cray Research
Pascal/VS
Pascal-XT
PURE Pascal
QuickPascal
RemObjets Chrome
Sun Pascal
THINK Pascal
Tiny Pascal (TRS-80)
Turbo Pascal
UCSD Pascal
VAX Pascal
Virtual Pascal
Turbo Pascal for CP/M-80
Turbo Pascal for DOS
Turbo Pascal for Macintosh
Turbo Pascal for Windows
CodeIgniter (Cadre d'application)
Drupal (Projet)
Joomla! (Projet)
Phalanger (PHP .NET)
phpBB (Projet)
Smarty (balise)
Twig (balise)
Symfony (Cadre d'application)
WordPress (Projet)
Zend (Cadre d'application)
PL360
PL/M-80
PL/M-86
Turbo Prolog
CPython
IronPython
Jython
PyPy
AREXX
Regina REXX
JMP
Btrieve
Cassandra
Clipper
CouchDB
dBASE
Hbase
Hypertable
MongoDB
Redis
Access
BigQuery
DB2
H2
Interbase
MySQL
Oracle
PostgreSQL
SAP HANA
SQL Server
Sybase
U-SQL
Visual C# 2005 Express
Visual Studio .NET 2003
Visual Studio 2005
Visual Studio 2008
Visual Studio 2010
Visual Studio 2012
Visual Studio 2013
Visual Studio 2015
Visual Studio 2017
Visual Studio 2019
Introduction
Les remarques
Les opérateurs
Les instructions conditionnelles
Les instructions de boucles
Les instructions d'exceptions
Type de données élémentaires
Définition de variables
Définitions de tableaux
Requêtes de données (LINQ)
Référence des mots réservés
Référence des espaces de nom (Namespace)
Les classes
Références des classes
Directives de préprocesseur C#
Les nombres
Les chaines de caractères
Date et heure
Vue par catégorie
Les interfaces
Les classes abstraites
Les classes scellés
Les indexeurs
Les premiers pas
Les fondements de C#
Les types primitifs et variables
Les opérateurs et les expressions
Les entrées/sorties de la console
Les déclarations conditionnelles
Les déclarations de boucles
Les systèmes numériques
Traitement des chaînes de caractères et du texte
WinForms (Windows Forms)
Les opérations
Conversion de string à int
Bonjour
Astronomie
Base de données
Biochimie
Chaine de caractères
Electricité
Finance
Géographie
Géométrie
Gouvernement
Histoire
Mathématique
Médicale
Météorologie
Océanographie
Sport
Système d'exploitation
Temps
Tri
Trigonométrie
Validation
Phase lunaire
Table SQL Server
Calcul du calcium corrigé
Calcul le taux d'alcoolémie
Nombre réel avec un certain nombre de décimal
Majuscule (strtoupper ou UpperCase)
Minuscule (strtolower ou LowerCase)
Calcul du tarif d'une piscine pour 1 mois
IPaymt/Interet
NPer
PPaymt/Principal
Distance en Km entre deux longitudes et latitudes
Aire d'un cercle
Aire d'une surface de prisme rectangulaire
Aire d'un triangle
Distance entre deux points
Taxe de vente canadienne
Chiffre romain
Ackermann
Exp
Factoriel
Fibonacci
Log
Nombre premier
Odd
Random
Sqrt
Triangle Pascal
Valeur absolue (ABS)
Hauteur utérine
Unité de mesure
Fréquence des vagues
Hockey
Variables d'environnement
Année bissextile
Date de la Pâque
Heure courante
FirstDayOfMonth
Tri à bulle (Bubble Sort)
Tri Shell Sort
ArcCos
ArcSin
Atn/ATan/ArcTan/ArcTangente
Cos
Sin
Courriel
ALGLIB
Dapper
ElmahCore
FluentFTP
log4net
MailKit
MediatR
MimeKit
Newtonsoft.Json (Json.NET)
Serilog
.NET
.NET Core
.NET Framework
Accord.NET Framework
Akka.NET
ASP.NET
ASP.NET Core
Avalonia UI
Blazor
Entity Framework
Entity Framework Core (EF Core)
Hangfire
Infer.NET
MAUI
ML.NET
Mono
NHibernate
NUnit
Unity
xUnit.net
Azure SDK for .NET
AWS SDK for .NET
Bot Framework SDK
Razor
Umbraco
Rider
Visual Studio
Visual Studio Code
Visual C# 2005 Express
Xamarin Studio
Visual Studio .NET
Visual Studio .NET 2003
Visual Studio 2005
Visual Studio 2008
Visual Studio 2010
Visual Studio 2012
Visual Studio 2013
Visual Studio 2015
Visual Studio 2017
Visual Studio 2019
Visual Studio 2022
ELMAH
elmah.io
MS Build Tools
NuGet
WiX Toolset
Add-in Express
csc (C# Compiler)
CFF Explorer
IL DASM
ILMerge
.NET Reflector
Salamander .NET Decompiler
Références des codes d'erreur du C# (C Sharp)
Base de connaissances
Conventions de nommage
Vocabulaire
Marqueurs
Archives de paquet externe
Bibliographie
Préface
Notes légal
Dictionnaire
Recherche

Les nombres

Les nombres, en général, peuvent être divisés en deux types : le type entier et les types à virgule flottante. Les nombres de type entier sont des nombres entiers sans virgule décimale. Il peut s'agir de nombres négatifs ou positifs. Le type à virgule flottante est un nombre avec une ou plusieurs décimales. Il peut s'agir de nombres négatifs ou positifs. Le C# inclut différents types de données pour les types entiers et les types à virgule flottante en fonction de leur taille dans la mémoire et de leur capacité à entreposer des nombres.

Le schéma suivante illustre les types numériques en C# :

Types d'entiers

Les nombres de type entier sont des nombres entiers positifs ou négatifs sans points décimaux. Le C# inclut 4 types de données pour les nombres entiers : byte, short, int, et long.

byte

Le type de données byte entrepose des nombres de 0 à 255. Il occupe 8 bits dans la mémoire. Le mot clef byte est un alias de la structure Byte dans .NET. Le sbyte est identique à l'octet, mais il peut entreposer des nombres négatifs de -128 à 127. Le mot clef sbyte est un alias pour la structure SByte dans .NET.

Voici quelques exemples typiques de l'utilisation de ce type de données :

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5.  
  6. namespace ByteSamples
  7. {
  8.     class Program
  9.     {
  10.         static void Main(string[] args)
  11.         {
  12.             byte myValue;
  13.             myValue = 4;
  14.             Console.WriteLine("myValue = " + myValue);
  15.             myValue *= 2;
  16.             Console.WriteLine("myValue = " + myValue);
  17.             myValue++;
  18.             Console.WriteLine("myValue = " + myValue); 
  19.         }
  20.     }
  21. }

on obtiendra le résultat suivant :

myValue = 4
myValue = 8
myValue = 9

Voici un exemple utilisant les limites du nombre :

  1. using System;
  2.  
  3. public class Program {
  4.      public static void Main() {
  5.           byte b1 = 255;
  6.           //byte b2 = -128; // erreur de compilation : la valeur constante '-128' ne peut pas être convertie en 'byte'
  7.           sbyte sb1 = -128;
  8.           sbyte sb2 = 127;
  9.           Console.WriteLine(Byte.MaxValue);
  10.           Console.WriteLine(Byte.MinValue);
  11.           Console.WriteLine(SByte.MaxValue);
  12.           Console.WriteLine(SByte.MinValue);
  13.      }
  14. }

short

Le type de données court est un entier signé pouvant entreposer des nombres de -32 768 à 32 767. Il occupe une mémoire de 16 bits. Le mot clef short est un alias pour la structure Int16 dans .NET. Le type de données ushort est un entier non signé. Il ne peut entreposer que des nombres positifs de 0 à 65 535. Le mot clef ushort est un alias pour la structure UInt16 dans .NET.

Voici quelques exemples typiques de l'utilisation de ce type de données :

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5.  
  6. namespace UShortSamples
  7. {
  8.     class Program
  9.     {
  10.         static void Main(string[] args)
  11.         {
  12.             ushort myValue;
  13.             myValue = 4;
  14.             Console.WriteLine("myValue = " + myValue);
  15.             myValue *= 2;
  16.             Console.WriteLine("myValue = " + myValue);
  17.             myValue++;
  18.             Console.WriteLine("myValue = " + myValue); 
  19.         }
  20.     }
  21. }

on obtiendra le résultat suivant :

myValue = 4
myValue = 8
myValue = 9

Voici un exemple utilisant les limites du nombre :

  1. using System;
  2.  
  3. public class Program
  4. {
  5.      public static void Main() {
  6.           short s1 = -32768;
  7.           short s2 = 32767;
  8.           //short s3 = 35000; //erreur de compilation : la valeur constante « 35000 » ne peut pas être convertie en «short»
  9.           ushort us1 = 65535;
  10.           //ushort us2 = -32000; // erreur de compilation : la valeur constante '-32000' ne peut pas être convertie en «ushort»
  11.           Console.WriteLine(Int16.MaxValue);
  12.           Console.WriteLine(Int16.MinValue);
  13.           Console.WriteLine(UInt16.MaxValue);
  14.           Console.WriteLine(UInt16.MinValue);
  15.      }
  16. }

int

Le type de données int est un entier signé 32 bits. Il peut entreposer des nombres de -2 147 483 648 à 2 147 483 647. Le mot clef int est un alias de la structure Int32 dans .NET. Le type de données uint est un entier non signé de 32 bits. Le mot clef uint est un alias de la structure UInt32 dans .NET. Il peut entreposer des nombres positifs de 0 à 4 294 967 295. Utilisez éventuellement le suffixe U ou u après un nombre pour l'affecter à la variable uint.

Le type de données int est également utilisé pour les nombres hexadécimaux et binaires. Un nombre hexadécimal commence par le préfixe 0x ou 0X. À partir de la version 7.2 de C#, un nombre binaire commence par 0b ou 0B.

Voici un exemple utilisant les limites du nombre :

  1. using System;
  2.  
  3. public class Program
  4. {
  5.      public static void Main() {
  6.           int i = -2147483648;
  7.           int j = 2147483647;
  8.           //int k = 4294967294; // erreur de compilation : impossible de convertir implicitement le type « uint » en « int ».
  9.           uint ui1 = 4294967295;
  10.           //uint ui2 = -1; // erreur de compilation
  11.           Console.WriteLine(Int32.MaxValue);
  12.           Console.WriteLine(Int32.MinValue);
  13.           Console.WriteLine(UInt32.MaxValue);
  14.           Console.WriteLine(UInt32.MinValue);
  15.      }
  16. }

long

Le type de données long correspond à des entiers signés 64 bits. Il peut entreposer des nombres de -9 223 372 036 854 775 808 à 9 223 372 036 854 775 807. Utilisez le suffixe l ou L avec un numéro pour l'affecter à une variable de type de données long. Le mot clef long est un alias de la structure Int64 dans .NET.

Le type ulong entrepose les nombres positifs de 0 à 18 446 744 073 709 551 615. Si un nombre est suffixé par UL, Ul, uL, ul, LU, Lu, lU ou lu, son type de données est ulong. Le mot clef uint est un alias de la structure UInt64 dans .NET.

Voici un exemple utilisant les limites du nombre :

  1. using System;
  2.  
  3. public class Program {
  4.      public static void Main() {
  5.           long l1 = -9223372036854775808;
  6.           long l2 = 9223372036854775807;
  7.           ulong ul1 = 18223372036854775808ul;
  8.           ulong ul2 = 18223372036854775808UL;
  9.           Console.WriteLine(Int64.MaxValue); 
  10.           Console.WriteLine(Int64.MinValue); 
  11.           Console.WriteLine(UInt64.MaxValue);
  12.           Console.WriteLine(UInt64.MinValue);
  13.      }
  14. }

Types à virgule flottante

Les nombres à virgule flottante sont des nombres positifs ou négatifs avec une ou plusieurs décimales. Le C# inclut trois types de données pour les nombres à virgule flottante : float, double et decimal.

float

Le type de données float peut entreposer des nombres fractionnaires de 3.4e-038 à 3.4e+038. Il occupe 4 octets dans la mémoire. Le mot clef float est un alias d'un structure Single dans .NET. Utilisez le suffixe f ou F avec un littéral pour le rendre de type flottant.

Cet exemple permet des déclarations de type de données float :

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5.  
  6. namespace FloatSamples
  7. {
  8.     class Program
  9.     {
  10.         static void Main(string[] args)
  11.         {
  12.             float a = 1;
  13.             float b = (float) 1.25;
  14.             float c;
  15.             Console.WriteLine("Valeur de b=" + b); 
  16.         }
  17.     }
  18. }

on obtiendra le résultat suivant :

Valeur de b=1.25

Voici un exemple montrant quelques affectations :

  1. using System;
  2.  
  3. public class Program {
  4.      public static void Main() {
  5.           float f1 = 1234567.5F;
  6.           float f2 = 1.1234567f;
  7.           Console.WriteLine(f1);
  8.           Console.WriteLine(f2);
  9.      }
  10. }

double

Le type de données double peut entreposer des nombres fractionnaires de 1.7e-308 à 1.7e+308. Il occupe 8 octets dans la mémoire. Le mot clef double est un alias de la structure Double dans .NET. Utilisez le suffixe d ou D avec un littéral pour en faire un type de données double.

Cet exemple permet d'affecter une valeur à la variable «a» :

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5.  
  6. namespace DoubleSamples
  7. {
  8.     class Program
  9.     {
  10.         static void Main(string[] args)
  11.         {
  12.             double a = 20.16;
  13.             double b;
  14.             Console.WriteLine("a = " + (double) a); 
  15.         }
  16.     }
  17. }

on obtiendra le résultat suivant :

a = 20.16

Voici un exemple montrant quelques affectations :

  1. using System;
  2.                          
  3. public class Program {
  4.      public static void Main() {
  5.           double d1 = 1234567891234567.5d;
  6.           double d2 = 1.1234567891234567d;
  7.           Console.WriteLine(d1); 
  8.           Console.WriteLine(d2); 
  9.      }
  10. }

decimal

Le type de données decimal peut entreposer des nombres fractionnaires de ±1,0 x 10-28 à ±7,9228 x 1028. Il occupe 16 octets dans la mémoire. La décimale est un alias de mot clef de la structure Decimal dans .NET. Le type décimal a plus de précision et une intervalle plus petite que float et double, et il est donc approprié pour les calculs financiers et monétaires. Utilisez le suffixe m ou M avec un littéral pour le rendre de type décimal.

  1. using System;
  2.  
  3. public class Program {
  4.      public static void Main() {
  5.           decimal d1 = 1234567891234567891234567.5m;
  6.           decimal d2 = 1.12345678913456791234567m;
  7.           
  8.           Console.WriteLine(d1);
  9.           Console.WriteLine(d2);
  10.      }
  11. }

Notation scientifique

Utilisez e ou E pour indiquer la puissance de 10 comme partie exposant de la notation scientifique avec float, double ou decimal :

  1. using System;
  2.  
  3. public class Program {
  4.      public static void Main() {
  5.           double d = 0.12e2;
  6.           Console.WriteLine(d); 
  7.           float f = 123.45e-2f;
  8.           Console.WriteLine(f); 
  9.           decimal m = 1.2e6m;
  10.           Console.WriteLine(m);
  11.      }
  12. }


PARTAGER CETTE PAGE SUR
Dernière mise à jour : Mercredi, le 29 décembre 2021