F#中的数据类型可分类如下: -
- 整数类型
- 浮点类型
- 文本类型
- 其他类型
整体数据类型
下表提供了F#的积分数据类型。 这些基本上是整数数据类型。
F#类型 | 大小 | 范围 | 例子 | 备注 |
---|---|---|---|---|
sbyte | 1个字节 | -128到127 | 42Y -11y | 8位有符号整数 |
byte | 1个字节 | 0到255 | 42uy 200uy | 8位无符号整数 |
int16 | 2个字节 | -32768到32767 | 42S -11s | 16位有符号整数 |
uint16 | 2个字节 | 0到65,535 | 42us 200us的 | 16位无符号整数 |
int/int32 | 4个字节 | 2,147,483,648 2,147,483,647 | 42 -11 | 32位有符号整数 |
uint32 | 4个字节 | 0 4,294,967,295 | 42U 200U | 32位无符号整数 |
int64 | 8个字节 | -9,223,372,036,854,775,808到9,223,372,036,854,775,807 | 42L -11L | 64位有符号整数 |
uint64 | 8个字节 | 0到18,446,744,073,709,551,615 | 42UL 200μl的 | 64位无符号整数 |
bigint | 至少4个字节 | 任何整数 | 42I 1499999 9999999 9999999 9999999 9999I | 任意精度的整数 |
例
(* signed floating point number *)let x = 268.97flet y = 312.58flet z = x + yprintfn "x: %f" xprintfn "y: %f" yprintfn "z: %f" z(* unsigned 8-bit natural number *)let p = 2uylet q = 4uylet r = p + qprintfn "p: %i" pprintfn "q: %i" qprintfn "r: %i" r(* signed 16-bit integer *)let a = 12slet b = 24slet c = a + bprintfn "a: %i" aprintfn "b: %i" bprintfn "c: %i" c(* signed 32-bit integer *)let d = 212llet e = 504llet f = d + eprintfn "d: %i" dprintfn "e: %i" eprintfn "f: %i" f
当你编译和执行程序,它产生以下输出 -
x: 1y: 2z: 3p: 2q: 4r: 6a: 12b: 24c: 36d: 212e: 504f: 716
浮点数据类型
下表提供F#的浮点数据类型。
F#类型 | 大小 | 范围 | 例子 | 备注 |
---|---|---|---|---|
float32 | 4个字节 | ±1.5E-45至±3.4E38 | 42.0F -11.0F | 32位有符号浮点数(7个有效位) |
float | 8个字节 | ±5.0E-324到±1.7e308 | 42.0 -11.0 | 64位有符号浮点数(15-16有效位) |
decimal | 16字节 | ±1.0E-28±7.9e28 | 42.0M -11.0M | 128位有符号浮点数(28-29有效位) |
BigRational | 至少4个字节 | 任意有理数。 | 42N -11N | 任意精度有理数。 使用此类型需要引用FSharp.PowerPack.dll。 |
例
(* 32-bit signed floating point number *)(* 7 significant digits *)let d = 212.098flet e = 504.768flet f = d + eprintfn "d: %f" dprintfn "e: %f" eprintfn "f: %f" f(* 64-bit signed floating point number *)(* 15-16 significant digits *)let x = 21290.098let y = 50446.768let z = x + yprintfn "x: %g" xprintfn "y: %g" yprintfn "z: %g" z
当你编译和执行程序,它产生以下输出
d: 212.098000e: 504.768000f: 716.866000x: 21290.1y: 50446.8z: 71736.9
text数据类型
下表提供F#的文本数据类型。
F#类型 | 尺寸 | 范围 | 例 | 备注 |
---|---|---|---|---|
char | 2个字节 | U + 0000至U + FFFF | 'x' '\t' | 单个Unicode字符 |
string | 20 +(2 *字符串的长度)个字节 | 0至约2十亿个字符 | "Hello" "World" | Unicode文本 |
例
let choice = 'y'let name = "Zara Ali"let org = "Tutorials Point"printfn "Choice: %c" choiceprintfn "Name: %s" nameprintfn "Organisation: %s" org
当你编译和执行程序,它产生以下输出 -
Choice: yName: Zara AliOrganisation: Tutorials Point
其他数据类型
下表提供的F#的某些其它数据类型。
F#类型 | 大小 | 范围 | 例子 | 备注 |
---|---|---|---|---|
bool | 1个字节 | 只有两个可能值,真或假 | true false | 存储布尔值 |
例
let trueVal = truelet falseVal = falseprintfn "True Value: %b" (trueVal)printfn "False Value: %b" (falseVal)
当你编译和执行程序,它产生以下输出
True Value: trueFalse Value: false