F#中的数据类型可分为以下几种;
积分类型
浮点类型
文本类型
其他类型
下表提供了F#的整数数据类型.这些基本上是整数数据类型.
F#Type | 大小 | 范围 | 示例 | 备注 |
---|---|---|---|---|
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 200UL | 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#Type | 大小 | 范围 | 示例 | 备注 |
---|---|---|---|---|
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 bytes | ±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
下表提供了F#的文本数据类型.
F#Type | 尺寸 | 范围 | 示例 | 备注 |
---|---|---|---|---|
char | 2字节 | U + 0000到U + ffff | 'x' '\t' | 单个unicode字符 |
string | 20 +(2 * string的长度)bytes | 0到大约20亿个字符 | "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
以下table提供了F#的其他一些数据类型.
F#类型 | 大小 | 范围 | 示例 | 备注 |
---|---|---|---|---|
bool | 1字节 | 只有两个可能的值,true或false | true false | 存储布尔值 |
let trueVal = true let falseVal = false printfn "True Value: %b" (trueVal) printfn "False Value: %b" (falseVal)
编译并执行时程序,它产生以下输出 :
True Value: true False Value: false