• ベストアンサー

C# 数字について

C#数字表示について 例 (1) 23 → 25 ※1~4までは5にして25と表示 (2) 27 → 30 ※6~9までは10にして30と表示 説明 1~4までは5に。 6~9までは10にしたいのですが、 どうしたら出来ますか? どなたか教えて戴けませんか?お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.5

条件の数が少ない場合には、非常に汎用的な方法として、配列を使う方法があります。 コードは、Cですが // for 0 1 2 3 4 5 6 7 8 9 const int addTable[] = {0, 4, 3, 2, 1, 0, 4, 3, 2, 1}; int a; に対して、 a += addTable[a % 10]; テーブルさえ作れば、どんなパターンでも対応できます。 10個ぐらいなら、手で作れますし、それ以上に増えれば、テーブル自体をプログラムで生成するのもありです。 もちろん、今回の場合は、本質的には5単位で繰り返すので、 const int addTable[] = {0, 4, 3, 2, 1}; int a; に対して、 a += addTable[a % 5]; でもOKです。

その他の回答 (4)

  • YEND77
  • ベストアンサー率56% (21/37)
回答No.4

エクセルなら =CEILING(A1,5) とかですが、、、

ndckenji
質問者

補足

はい。 エクセルならこうなりますね しかしC#では、どうなるだろう 教えて戴けませんか?

回答No.3

C言語のプログラムで書くと、こうかも。 main(){ int i; for(i=0; i<100; i++) printf("%d %d\n", i, ((i+4)/5)*5 ); }

ndckenji
質問者

補足

参考になります。 これだと繰り返し処理ですが、 TEXTBOX1 に 13 と入力したら 表示は15としたいのです。 つまり 0 と 5を丸めたいです。 例1 12 → 15 例2 36 → 40 こういう式でexcelでしたら=CEILING(A1,5)になるけど C#はどうなるのかな

  • nza49739
  • ベストアンサー率46% (29/62)
回答No.2

プログラムで書くと A += ( 5 - A % 5 ) % 5 ; 整数演算ならこれで済みます。

ndckenji
質問者

お礼

重要な参考戴きありがとうございます。

回答No.1

5で割ってから切り上げて、5をかける。 (1) 23 -> 4.6 -> 5 -> 25 (2) 27 -> 5.4 -> 6 -> 30

ndckenji
質問者

お礼

参考戴きありがとうございます。

関連するQ&A