F # - Types de données

Les types de données dans F # peuvent être classés comme suit -

  • Types intégraux
  • Types à virgule flottante
  • Types de texte
  • Autres types

Type de données intégral

Le tableau suivant fournit les types de données intégrales de F #. Ce sont essentiellement des types de données entiers.

Type F # Taille Intervalle Exemple Remarques
sbyte 1 octet -128 à 127

42 ans

-11 ans

Entier signé 8 bits
octet 1 octet 0 à 255

42uy

200uy

Entier non signé 8 bits
int16 2 octets -32768 à 32767

42 ans

-11s

Entier signé 16 bits
uint16 2 octets 0 à 65 535

42us

200us

Entier non signé 16 bits
int / int32 4 octets -2 147 483 648 à 2 147 483 647

42

-11

Entier signé 32 bits
uint32 4 octets 0 à 4 294 967 295

42u

200u

Entier non signé 32 bits
int64 8 octets -9,223,372,036,854,775,808 à 9,223,372,036,854,775,807

42 L

-11 L

Entier signé 64 bits
uint64 8 octets 0 à 18,446,744,073,709,551,615

42UL

200UL

Entier non signé 64 bits
bigint Au moins 4 octets tout entier

42I

1499999

9999999

9999999

9999999

9999I

entier de précision arbitraire

Exemple

(* single byte integer *)
let x = 268.97f
let y = 312.58f
let z = x + y

printfn "x: %f" x
printfn "y: %f" y
printfn "z: %f" z

(* unsigned 8-bit natural number *)

let p = 2uy
let q = 4uy
let r = p + q

printfn "p: %i" p
printfn "q: %i" q
printfn "r: %i" r

(* signed 16-bit integer *)

let a = 12s
let b = 24s
let c = a + b

printfn "a: %i" a
printfn "b: %i" b
printfn "c: %i" c

(* signed 32-bit integer *)

let d = 212l
let e = 504l
let f = d + e

printfn "d: %i" d
printfn "e: %i" e
printfn "f: %i" f

Lorsque vous compilez et exécutez le programme, il produit la sortie suivante -

x: 1
y: 2
z: 3
p: 2
q: 4
r: 6
a: 12
b: 24
c: 36
d: 212
e: 504
f: 716

Types de données à virgule flottante

Le tableau suivant fournit les types de données à virgule flottante de F #.

Type F # Taille Intervalle Exemple Remarques
float32 4 octets ± 1,5e-45 à ± 3,4e38

42.0F

-11,0F

Nombre à virgule flottante signé 32 bits (7 chiffres significatifs)
flotte 8 octets ± 5,0e-324 à ± 1,7e308

42,0

-11,0

Nombre à virgule flottante signé 64 bits (15-16 chiffres significatifs)
décimal 16 octets ± 1,0e-28 à ± 7,9e28

42,0 M

-11,0 M

Nombre à virgule flottante signé de 128 bits (28 à 29 chiffres significatifs)
BigRational Au moins 4 octets Tout nombre rationnel.

42N

-11N

Nombre rationnel de précision arbitraire. L'utilisation de ce type nécessite une référence à FSharp.PowerPack.dll.

Exemple

(* 32-bit signed floating point number *)
(* 7 significant digits *)

let d = 212.098f
let e = 504.768f
let f = d + e

printfn "d: %f" d
printfn "e: %f" e
printfn "f: %f" f

(* 64-bit signed floating point number *)
(* 15-16 significant digits *)
let x = 21290.098
let y = 50446.768
let z = x + y

printfn "x: %g" x
printfn "y: %g" y
printfn "z: %g" z

Lorsque vous compilez et exécutez le programme, il produit la sortie suivante -

d: 212.098000
e: 504.768000
f: 716.866000
x: 21290.1
y: 50446.8
z: 71736.9

Types de données texte

Le tableau suivant fournit les types de données texte de F #.

Type F # Taille Intervalle Exemple Remarques
carboniser 2 octets U + 0000 à U + ffff

'X'

'\ t'

Caractères unicode uniques
chaîne 20 + (2 * longueur de la chaîne) octets 0 à environ 2 milliards de caractères

"Bonjour"

"Monde"

Texte Unicode

Exemple

let choice = 'y'
let name = "Zara Ali"
let org = "Tutorials Point"

printfn "Choice: %c" choice
printfn "Name: %s" name
printfn "Organisation: %s" org

Lorsque vous compilez et exécutez le programme, il produit la sortie suivante -

Choice: y
Name: Zara Ali
Organisation: Tutorials Point

Autres types de données

Le tableau suivant fournit d'autres types de données de F #.

Type F # Taille Intervalle Exemple Remarques
booléen 1 octet Seulement deux valeurs possibles, vrai ou faux

vrai

faux

Stocke les valeurs booléennes

Exemple

let trueVal = true
let falseVal = false

printfn "True Value: %b" (trueVal)
printfn "False Value: %b" (falseVal)

Lorsque vous compilez et exécutez le programme, il produit la sortie suivante -

True Value: true
False Value: false