Numeeriset tyypit

Tyyppi Sisältö/arvoalue
byte Kokonaisluku väliltä 0 ... 255
sbyte Kokonaisluku väliltä -128 ... 127
short Kokonaisluku väliltä -32,768 ... 32,767
ushort Kokonaisluku väliltä 0 ... 65,535
int Kokonaisluku väliltä -2,147,483,648 ... 2,147,483,647
uint Kokonaisluku väliltä 0 ... 4,294,967,295
long Kokonaisluku väliltä -9,223,372,036,854,775,808 ... 9,223,372,036,854,775,807
ulong Kokonaisluku väliltä 0 ... 18,446,744,073,709,551,615
float Reaaliluku väliltä -3.402823*1038 ... 3.402823*1038
double Reaaliluku väliltä -1.79769313486232*10308 ... 1.79769313486232*10308
decimal Reaaliluku väliltä -79228162514264337593543950335 ... 79228162514264337593543950335
Kokonaisluvuista int ja long ovat pääasiallisesti suositellut (pienemmät tyypit muutetaan int-tyypiksi laskutoimituksia varten). Muita kokonaislukutyyppejä kannattaa suosia, jos tilaa on vähän ja pitää käyttää, jos yhteensopivuus toisen sovelluksen/kirjaston kanssa sitä vaatii. Byte on oikea valinta, jos tarvitsee käsitellä dataa tavuina (esim. kuvankäsittely tai tietovirrat).

Desimaaliluvuista float ja double sopivat tieteelliseen laskentaan, jossa joustavampi arvoalue ja nopeus ovat tarpeen. Decimal sopii talouslaskentaan, koska siinä ei ole samanlaisia pyöristysvirheitä kuin floatissa ja doublessa. Decimal on n. 10 kertaa hitaampi käyttää kuin float ja double.

Annettaessa muuttujalle arvoa on luvun perään laitettava floatin tapauksessa f ja decimalin tapauksessa m (iso tai pieni kirjain käy)

float luku1 = 123.4f;
decimal luku2 = 123.4m;

Arvoja voi antaa myös heksa- tai eksponenttimuodossa

// heksamuoto
int luku = 0xABC;
// eksponenttimuoto
double miljoona = 1E6;

Numeerisilla tyypeillä on erityisarvot MinValue (minimiarvo) ja MaxValue (maksimiarvo). Doublella ja floatilla on lisäksi erityisarvot NaN (not a number), PositiveInfinity (positiivinen ääretön) ja NegativeInfinity (negatiivinen ääretön)

int intinMaksimi = int.MaxValue;
byte bytenMinimi = byte.MinValue;
double nan = double.NaN;
float posAareton = float.PositiveInfinity;

Tulostusmuotoilu

Lukuja voidaan muotoilla, kun niitä muutetaan tekstimuotoon. Eräs hyödyllinen muotoilu on desimaalien rajoittaminen. Muotoiluja voidaan käyttää metodeissa, jotka hyväksyvät ‘muotoilu’-stringin. Näitä ovat esim. Teksti sekä Teksti. Alla joitain muotoiluesimerkkejä.
int kokonaisluku = 123;

// Lisätään nollia luvun eteen
// kaksoispisteen jälkeen nollia tarvittava määrä
string s1 = string.Format("{0:0000}", kokonaisluku); // "0123"
string s2 = string.Format("{0:00000}", kokonaisluku); // "00123"

// Lisätään tyhjää luvun eteen tai perään
// pilkku ja sen perään tulostuksen pituus (mukaan lukien luku)
// positiivinen luku pilkun jälkeen -> tyhjä ennen lukua
// negatiivinen luku pilkun jälkeen -> tyhjä luvun perään
string s3 = string.Format("{0,6}", kokonaisluku); // "   123"
string s4 = string.Format("{0,-4}", kokonaisluku); // "123 "

// Yhdistelmä nollia sekä tyhjää
string s5 = string.Format("{0,7:00000}", kokonaisluku); // "  00123"
string s6 = string.Format("{0,-7:0000}", kokonaisluku); // "0123   "

// Erikoismuotoilu negatiivisille luvuille ja nollalle
// ensimmäisen puolipisteen jälkeen negatiivisen luvun muotoilu
// toisen puolipisteen jälkeen nollan muotoilu
string s7 = string.Format("{0:#;miinus #}", kokonaisluku); // "123"
string s8 = string.Format("{0:#;miinus #}", -kokonaisluku); // "miinus 123"
string s9 = string.Format("{0:#;miinus #;nolla}", 0); // "nolla"
string s10 = string.Format("{0,6:#;miinus #00000}", -kokonaisluku); // "miinus 00123"

// Erikoismuotoilu
string s11 = string.Format("{0:#A#B#C}", kokonaisluku); // "1A2B3C"
string s12 = string.Format("{0:##-#}", kokonaisluku); // "12-3"

double desimaaliluku = 34.56d;

// Desimaalien määrä (pyöristää tarvittaessa)
// pisteen perään tarvittava määrä nollia
string s13 = string.Format("{0:0.0}", desimaaliluku); // "34,6"
string s14 = string.Format("{0:0.000}", desimaaliluku); // "34,560"
// Maksimimäärä desimaaleja
// ruutuja tarpeen mukaan
string s15 = string.Format("{0:0.#}", desimaaliluku); // "34,6"
string s16 = string.Format("{0:0.###}", desimaaliluku); // "34,56"

// Kokonaisosan  pituus
// pisteen eteen nollia tarpeen mukaan
string s17 = string.Format("{0:00.00}", desimaaliluku); // "34,56"
string s18 = string.Format("{0:0000.0}", desimaaliluku); // "0034,6"