- ベストアンサー
プログラミング
C言語のプログラミングで、四捨五入を作りたいのですが、ご教授いただけますか? また、良いサイトがあったら教えていただけますか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>キャストとはどういった意味なのでしょうか? 型の変換です。 doubleの1.0とintの1では、データ的に互換性はありません。 (そのあたりは浮動小数点を調べてみてください) そこでint型=double型のような形だと型変換が行われるわけですが それをキャストといいます。 (int)とかすることで明示的にキャストを行う事ができます。 1の回答を元に説明しますと int b = (int)(d + 0.5); これはまず 0.50000001(double型) + 0.5(double型) => 1.0000001(double型) の計算が行われ この答え:double型をint型に変換しています。これがキャストです。 1.0000001(double型) => 1(int型) doubleからintへのキャストは小数部を切り捨てるという処理を行います。 そのため0.5を足してint型にキャストすることで四捨五入と同じ結果を得られるのです。 これを応用して任意の位の四捨五入も可能です。 0.5足して四捨五入というのはCでは常用するテクニックなので覚えておくとよいでしょう。
その他の回答 (1)
- yamaichiro
- ベストアンサー率31% (77/243)
double d = 0.50000001; int a = (int)d; /* a=0 */ int b = (int)(d + 0.5); /* b=1 */ でどうでしょう。intにキャストすると小数点以下は 切り捨てられるので、0.5を加えて次の整数を超えさ せるという方法です。 dが負の場合に負の方向に四捨五入するには、処理を 変えないとね。
お礼
ありがとうございました^^
補足
すいません、キャストとはどういった意味なのでしょうか?
お礼
ありがとうございました!やってみました^^