2017-07-06 12 views
2

私は値に長い番号を割り当てるのに苦労しています。私は同じエラーを取得し、しかし値に大きな数値を割り当てるにはどうすればよいですか?

let cardNumber = (int64 1234567891234567) 

:私は、試してみました

This number is outside the allowable range for 32-bit signed

let cardNumber = 1234567891234567 

は、私は、次のエラーメッセージが表示されます。

私は以下を参照していますdocumentation。 しかし、私はコンパイラを幸せにするために何をする必要があるのか​​分からない。

答えて

12

強く型付けされた言語であるため、F#ではすべてのリテラルに明示的な型が必要です。接尾辞を持たない小数点のない数値は、32ビットの整数リテラルとみなされます。

あなたの場合は、1234567891234567は32ビット整数リテラルであり、32ビット整数はそれほど大きくないことに注意してください。あなたはそれが64ビット整数リテラルになりたいコンパイラに指示するには、このようにそれの後に「L」を置く必要があります。

let cardNumber = 1234567891234567L 

がリテラルの種類を宣言する方法についてhttps://docs.microsoft.com/en-us/dotnet/fsharp/language-reference/literalsを参照してください。

関連する問題