数据类型
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 | 
任意精度的整数 | 
例
(* 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
当你编译和执行程序,它产生以下输出 -
x: 1
y: 2
z: 3
p: 2
q: 4
r: 6
a: 12
b: 24
c: 36
d: 212
e: 504
f: 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.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
当你编译和执行程序,它产生以下输出 
d: 212.098000
e: 504.768000
f: 716.866000
x: 21290.1
y: 50446.8
z: 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" choice
printfn "Name: %s" name
printfn "Organisation: %s" org
当你编译和执行程序,它产生以下输出 -
Choice: y
Name: Zara Ali
Organisation: Tutorials Point
其他数据类型
下表提供的F#的某些其它数据类型。
| F#类型 | 
大小 | 
范围 | 
例子 | 
备注 | 
| bool | 
1个字节 | 
只有两个可能值,真或假 | 
true false | 
存储布尔值 | 
例
let trueVal = true
let falseVal = false
printfn "True Value: %b" (trueVal)
printfn "False Value: %b" (falseVal)
当你编译和执行程序,它产生以下输出 
True Value: true
False Value: false