.NET Core - Numeri
.NET Core supporta l'integrale numerico standard e le primitive a virgola mobile. Supporta anche i seguenti tipi:
- System.Numerics.BigInteger che è un tipo integrale senza limite superiore o inferiore. 
- System.Numerics.Complex è un tipo che rappresenta numeri complessi. 
- Un set di tipi di vettore abilitati SIMD (Single Instruction Multiple Data) nello spazio dei nomi System.Numerics. 
Tipi integrali
.NET Core supporta interi con e senza segno di intervalli diversi da un byte a otto byte di lunghezza. Tutti i numeri interi sono tipi di valore.
La tabella seguente rappresenta i tipi integrali e la loro dimensione;
| genere | Firmato / Non firmato | Dimensioni (byte) | Valore minimo | Valore massimo | 
|---|---|---|---|---|
| Byte | Non firmato | 1 | 0 | 255 | 
| Int16 | Firmato | 2 | −32.768 | 32.767 | 
| Int32 | Firmato | 4 | −2.147.483.648 | 2.147.483.647 | 
| Int64 | Firmato | 8 | −9.223.372.036.854.775.808 | 9.223.372.036.854.775.807 | 
| SByte | Firmato | 1 | -128 | 127 | 
| UInt16 | Non firmato | 2 | 0 | 65.535 | 
| UInt32 | Non firmato | 4 | 0 | 4.294.967.295 | 
| UInt64 | Non firmato | 8 | 0 | 18.446.744.073.709.551.615 | 
Ogni tipo integrale supporta un set standard di operatori aritmetici, di confronto, uguaglianza, conversione esplicita e conversione implicita.
È inoltre possibile lavorare con i singoli bit in un valore intero utilizzando la classe System.BitConverter.
Tipi in virgola mobile
.NET Core include tre tipi primitivi a virgola mobile, illustrati nella tabella seguente.
| genere | Dimensioni (byte) | Valore minimo | Valore massimo | 
|---|---|---|---|
| Doppio | 8 | −1,79769313486232e308 | 1.79769313486232e308 | 
| Single | 4 | −3.402823e38 | 3.402823e38 | 
| Decimale | 16 | −79.228.162.514.264.337.593,5 43.950.335 | 79.228.162.514.264.337.593.543,9 50.335 | 
- Ogni tipo a virgola mobile supporta un set standard di operatori aritmetici, di confronto, di uguaglianza, di conversione esplicita e di conversione implicita. 
- È inoltre possibile lavorare con i singoli bit nei valori Double e Single utilizzando la classe BitConverter. 
- La struttura Decimal ha i propri metodi, Decimal.GetBits e Decimal.Decimal (Int32 ()), per lavorare con i singoli bit di un valore decimale, nonché il proprio set di metodi per eseguire alcune operazioni matematiche aggiuntive. 
BigInteger
- System.Numerics.BigInteger è un tipo immutabile che rappresenta un numero intero arbitrariamente grande il cui valore in teoria non ha limiti superiori o inferiori. 
- I metodi del tipo BigInteger sono strettamente paralleli a quelli degli altri tipi integrali. 
Complesso
- Il tipo System.Numerics.Complex rappresenta un numero complesso, ovvero un numero con una parte di numero reale e una parte di numero immaginario 
- Supporta un set standard di operatori aritmetici, di confronto, di uguaglianza, di conversione esplicita e di conversione implicita, nonché di metodi matematici, algebrici e trigonometrici. 
SIMD
- Lo spazio dei nomi Numerics include un set di tipi di vettore abilitati per SIMD per .NET Core. 
- SIMD consente di parallelizzare alcune operazioni a livello di hardware, il che si traduce in enormi miglioramenti delle prestazioni nelle app matematiche, scientifiche e grafiche che eseguono calcoli su vettori. 
- I tipi di vettore abilitati per SIMD in .NET Core includono quanto segue: - Tipi System.Numerics.Vector2, System.Numerics.Vector3 e System.Numerics.Vector4, che sono vettori a 2, 3 e 4 dimensioni di tipo Single. 
- La struttura Vector <T> che consente di creare un vettore di qualsiasi tipo numerico primitivo. I tipi numerici primitivi includono tutti i tipi numerici nello spazio dei nomi System ad eccezione di Decimal. 
- Due tipi di matrice, System.Numerics.Matrix3 × 2, che rappresenta una matrice 3 × 2; e System.Numerics.Matrix4 × 4, che rappresenta una matrice 4 × 4. 
- Il tipo System.Numerics.Plane, che rappresenta un piano tridimensionale, e il tipo System.Numerics.Quaternion, che rappresenta un vettore utilizzato per codificare rotazioni fisiche tridimensionali.