目前为止我们虽然体验了F#整数和浮点数之间的区别,short, int, double float之间又有什么区别呢?试着看看如下代码:
let num1 = 10s
let num2 = 10
let num3 = 10L
let num4 = 10.0
let num5 = 10.f
这些数值常量的写法和C#很相似。
但是这些是否和我们预期的类型一致呢,可以实践确认下。稍微调查后我就发现了F# interactive功能。通过Alt + Enter就可以在主窗口下显示F# interactive窗口以用来调查它们。 输出结果如下:
val num1 : int16
val num2 : int
val num3 : int64
val num4 : float
val num5 : float32
F#的float和C#的double相当。而 float32就是C#的float,确实有点混乱。不过实际上使用float32几乎没有,10.0类似的常量声明就可以了。
其他类型的写法如下:
10u // uint
10us // ushort
10ul // ulong
120y // sbyte
0xFFuy // byte
由于是.NET语言、我们还可以试试decimal类型:
let num6 = 10.5m