29

このエラーを理解できません:

このメソッド SetVolume の呼び出しでは、ボリューム= 2055786000 およびサイズ= 93552000 です。ご覧のとおり、ボリュームは整数プロパティであり、サイズも整数です。

このクラスは dbml エンティティ クラスの部分クラスですが、このボリューム プロパティはデータベース内の列ではなく、「ビジネス オブジェクト プロパティ」として部分クラスにのみ存在します。

詳細を見る:

Data > Item : インデックス付きプロパティを評価するには、プロパティを修飾する必要があり、ユーザーが引数を明示的に指定する必要があります。

代替テキスト

何が原因でしょうか...?

4

8 に答える 8

41

整数 (符号付き) の最大値は です2147483647。その値がオーバーフローすると、プログラムの予期しない動作を防ぐために例外がスローされます。

その例外がスローされない場合、-2145629296for yourの値が得られますVolumeが、これはおそらく望ましくありません。

解決策:Int64ボリュームに を使用します。の最大値を使用すると9223372036854775807、おそらく安全側になります。

于 2011-01-21T07:54:38.360 に答える
7
int.MaxValue = 2147483647
2055786000 + 93552000 = 2149338000 > int.MaxValue

したがって、この数値を整数に格納することはできません。最大値が のInt64タイプを使用できます9,223,372,036,854,775,807

于 2011-01-21T07:54:11.283 に答える
2

結果の整数値は、整数データ型が保持できる範囲外です。

Int64 を使ってみる

于 2011-01-21T07:54:40.980 に答える
1

最大値 fo int は 2147483647 であるため、2055786000+93552000 > 2147483647 となり、オーバーフローが発生しました

于 2011-01-21T07:54:35.873 に答える
0

2055786000 + 93552000 = 2149338000、これは2^31より大きい。したがって、4バイトでコード化された符号付き整数を使用している場合、演算の結果は適合せず、オーバーフロー例外が発生します。

于 2011-01-21T07:56:53.520 に答える
0

intの最大サイズは2147483647です。はるかに大きいInt64/Longを使用できます。

于 2011-01-21T07:57:26.037 に答える
0

このエラーは、ゼロ除算により値が -1.#IND として返されたときに発生しました。C++ の IEEE 浮動小数点例外の詳細については、こちらの SOJohn Cook による

この回答に反対票を投じた(理由を特定しなかった)人にとって、この回答が一部の人にとって重要である理由は、ゼロによる除算が無限に大きな数になり、したがって値がInt32 (または Int64)。したがって、受け取るエラーは同じになります (算術演算でオーバーフローが発生しました) が、理由は少し異なります。

于 2014-04-07T10:04:02.853 に答える