解決済みの質問
VC++なんですが、入力した値の近似値を表示させたいときは、どういう考え方でプ...
VC++なんですが、入力した値の近似値を表示させたいときは、どういう考え方でプログラムを組めばいいでしょうか?
簡潔でいいのでプログラムを載せてもらえれば嬉しいです。
- 補足
- たとえば1000と2000があって1700と入力したら2000が表示させるようにしたいです。
-
- 質問日時:
- 2012/2/14 19:06:20
-
- 解決日時:
- 2012/2/21 15:35:50
-
- 回答数:
- 1
-
- お礼:
- 知恵コイン
- 100枚
-
- 閲覧数:
- 83
-
- ソーシャルブックマークへ投稿:
- Yahoo!ブックマークへ投稿
- はてなブックマークへ投稿
- (ソーシャルブックマークとは)
ベストアンサーに選ばれた回答
四捨五入ですか?
四捨五入の場合、よく利用するのは
0.5
を足して、端数を切り捨てます
桁を変える場合は、一度 10のn乗をかけたり、割ったりして揃えます
double d = 2.345 を 少数第2位で、四捨五入する場合
(double)( (int)(d * 100 + 0.5) ) / 100
といった感じです
0.5 を変えれば、切り上げ、切り下げも可能です
[補足後]
1000と2000で、100の位を四捨五入するなら
int n = 1700;
int a = ((n + 500) / 1000) * 1000;
500 を足すことで1500以上であれば2000台になります
そのあと1000で割ります。
すると、C言語では、小数点は切り捨てられますので、その後1000を掛けます
1700+500=2200
2200/1000=2.2 → 2(小数点切り捨て)
2*1000=2000
仮に
1499なら
1499+500=1999
1999/1000=1.999 → 少数切り捨てで、1
1*1000=1000
よって1500なら2000になり、1499なら、1000となります
- 違反報告
- 編集日時:2012/2/17 15:11:37
- 回答日時:2012/2/16 23:32:59
- この質問・回答は役に立ちましたか?
- 役に立った!
お役立ち度:
0人が役に立つと評価しています。


質問した人からのコメント