0

decimalaを変換しようとintegerしていて、状況に応じて値を切り上げたり切り下げたりしたいと考えています。

基本的な例は次のとおりです。

  • 12/3 = 4 なので、4 に丸める必要があります
  • 11/3 = 3.66666 なので、4 に丸める必要があります
  • 10/3 = 3 = 3.33333 なので、3 に丸める必要があります。
  • 9/3 = 3 なので 3 に丸める必要があります

私がインターネットで見つけたものは、常に切り捨てまたは常に切り上げであり、数字に基づいて判断を下すことはありません.

4

4 に答える 4

4

x丸めたい数値で、「通常の」丸め動作が必要な場合 (.5 が常に切り上げられるようにするため)、 を使用する必要がありますMath.Round(x, MidpointRounding.AwayFromZero)。実際に分数を計算していて、分子と分母が整数の場合、最初にそのうちの 1 つを double にキャストする必要があることに注意してください (そうしないと、除算演算子は切り捨てられた整数を生成します)。である場合int、次の結果をキャストする必要がありますRound()

int a = 5;
int b = 2;
double answer = (int) Math.Round(a / (double) b, MidpointRounding.AwayFromZero);
于 2013-05-24T15:38:49.913 に答える