LoginSignup
0
1

More than 1 year has passed since last update.

【C#】小数点の四捨五入

Posted at

今回学んだこと

小数点の四捨五入
小数点以下の一部をゼロで埋める方法

コード

小数点の四捨五入
//四捨五入したい数と、小数点第何位までの桁数を表示させたいかを入力する。
//桁数が足りない場合は0が入る。
  decimal[] N = Console.ReadLine().Split().Select(decimal.Parse).ToArray();

                decimal num = Math.Round(N[0], (int)N[1], MidpointRounding.AwayFromZero);

                Console.WriteLine(num.ToString().PadRight((int)N[1] + 2, '0'));

Math.Round()だけたど、最近接偶数というものが発生する。
端数が真ん中0.5だと、値に一番近い偶数になってしまうというもの。
(例えば、2.5を四捨五入して3になるだろうと思ったら、実際は2になる)

そのため、Math.Round()の引数で
MidpointRounding.AwayFromZeroを追加して四捨五入ができるようにします。


ちなみに配列Nは、
N[0] 四捨五入したい数
N[1] 四捨五入したい数を小数点第何位まで表示するかを指定
を表しています。

そしてnum.ToString()で文字列に変換。
PadRight((int)N[1] + 2, '0')で右から0をN[1]個詰めていきます。
+2と書いてあるのは、PadRightがコンマも計算に入れるからです。
というよりも、他の良い方法が思いつかなかっただけ…。

0
1
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1