Int/int(10/3など)の数値( "double")があります。
過剰近似でC#をintに変換する最良の方法は何ですか?
System.Math.Ceiling について質問していますか?
Math.Ceiling(0.2) == 1
Math.Ceiling(0.8) == 1
Math.Ceiling(2.6) == 3
Math.Ceiling(-1.4) == -1
int scaled = (int)Math.Ceiling( (double) 10 / 3 ) ;
「Excessation by Excess」によって、double型の数を「切り上げ」ようとしていると思います。したがって、@ Doug McCleanの「天井」メソッドは問題なく機能します。
ここに注記があります:double x = 0.8;
で開始し、(int)x;
による型変換を行うと、0
が得られます。または、(int)Math.Round(x);
を実行すると、1
を取得します。 double y = 0.4;
で開始し、(int)y;
による型変換を行うと、0
が得られます。または、(int)Math.Round(y);
を実行すると、0
を取得します。
2.42を考えると、それは242/100と言うことができ、121/50に簡略化できます。