如何为值分配大数?

时间:2017-07-06 14:50:09

标签: f#

我正在努力为一个值分配一个长号。

let cardNumber = (int64 1234567891234567)

我收到以下错误:

  

此数字超出了32位带符号

的允许范围

然后我尝试了:

Error: "Column not found: 1054 Unknown column '3' in 'on clause'"

但是,我得到了同样的错误。

我引用了以下documentation。 但是,我不知道我需要做些什么才能使编译器满意。

1 个答案:

答案 0 :(得分:13)

作为强类型语言,F#要求所有文字都具有显式类型。没有小数点且没有后缀的数字被认为是32位整数文字。

在您的情况下,这意味着1234567891234567是一个32位整数字面值,正如您所指出的,32位整数不能那么大。要告诉编译器你希望它是一个64位整数文字,你需要在它之后放一个'L':

let cardNumber = 1234567891234567L

请参阅https://docs.microsoft.com/en-us/dotnet/fsharp/language-reference/literals了解如何声明不同类型的文字。