Math.Roundメソッドを呼び出すと、「あいまいな呼び出し」コンパイラエラーが発生する理由について少し混乱しています。
これが私の問題のあるコードです:
Math.Round((2000-((Splots[x].RawMin/4095)*2000))+200);
RawMinはInt32データ型です。
RoundメソッドはInt32値型で返されるはずだと思いました。
ヒントや手がかりは大歓迎です。ありがとう、
Math.Roundメソッドを呼び出すと、「あいまいな呼び出し」コンパイラエラーが発生する理由について少し混乱しています。
これが私の問題のあるコードです:
Math.Round((2000-((Splots[x].RawMin/4095)*2000))+200);
RawMinはInt32データ型です。
RoundメソッドはInt32値型で返されるはずだと思いました。
ヒントや手がかりは大歓迎です。ありがとう、
のオーバーロード リストを見てくださいMath.Round
。単一のパラメーターを取る 2 つのメソッドがあります。
double Round(double d)
decimal Round(decimal d)
どちらも引数を指定して呼び出された場合に適用できますが、すでに丸められているため、開始するint
のに しかない場合にメソッドを呼び出すのは無意味です。int
たとえば、算術演算で除算演算を実行すると、他の演算に伝播するなど、実際に算術演算の方法を変更したいと思われます。double
// Note the 4095.0 to make it a double
Math.Round((2000-((Splots[x].RawMin/4095.0)*2000))+200);
それがなければ、すべての操作で整数演算が使用されますが、これはほぼ確実に望んでいたものではありません。
ただし、結果をキャストする必要がありint
ます。の範囲は と の両方の範囲を超えdouble
ているため、 の戻り値の型はです。この場合、計算が与えられれば、結果が適切な範囲になることが「わかっています」。int
long
Math.Round(double)
double