みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

C++の四捨五入

プログラミングで言う四捨五入とはいったいなんなのでしょうか?
丸めと四捨五入が混同していてよくわからなくなってます

C++でこれは四捨五入ですか?
cout << fixed << setprecision(1) << num/7.0 << endl;

いままで、とはいっても初心者ですが四捨五入の時は以下のようにしていました。
cout << round((num/7.0)*10)/10 << endl;

小数点第2位を四捨五入しなさいと言われた時はどちらも同じですか?

投稿日時 - 2019-05-04 16:39:10

QNo.9613478

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(6)

ANo.6

>カテゴリーマスターが何なのかわからないですが本当にカテゴリーマスターさん?

そのような称号がついているのですか?
okwaveが何らかの基準で判定しているのでしょうし、一応長年ITで生計を立ててますが、マスターを名乗った記憶はありません。

コード動かしてみてsetprecisionの挙動を誤解している事に気づきました。
申し訳ありません。
ただround((num/7.0)*10)/10が四捨五入になっていない事に言及しているつもりです。

投稿日時 - 2019-05-05 13:40:47

ANo.5

回答No.4の者です。

両者が同じかと問われたら、出力内容が異なる場合がある、完全に同じではないという答えになります。
2.95という値を四捨五入して出力するとき、round()を使うほうだと"3"だけ(coutのデフォルト状態の場合)ですが、setprecision()を使うほうだと"3.0"となります。

投稿日時 - 2019-05-05 11:59:24

ANo.4

setprecision()を使う方法は、coutなどのストリームに対する入出力の時にだけ使えます。
たとえば、「num/7.0を小数点以下第2位で四捨五入した値を変数ansに代入したい」という場合は
double ans = round((num/7.0)*10)/10;
と書くことはできても
double ans = fixed << setprecision(1) << num/7.0;
という書き方はエラーになります。
四捨五入に限ればround()を使う書き方を覚えておけば使える場面が広いということです。

四捨五入以外の方法で丸めたい場合には、round()の代わりにceil()やfloor()という関数を使います。

投稿日時 - 2019-05-04 21:00:31

お礼

回答者さんが言ってることは解ってます

私が質問しているのは問題の回答として以下は同じですか?ということですね
cout << fixed << setprecision(1) << num/7.0 << endl;
cout << round((num/7.0)*10)/10 << endl;

投稿日時 - 2019-05-05 06:42:17

ANo.3

『丸め』は指定桁以上の表示方式
『四捨五入』は指定桁以下の取り扱い方法
『切り上げ』『切り下げ』も取り扱い方法
プログラミング言語に依存することではなく、通常の算術処理のひとつです。

投稿日時 - 2019-05-04 19:53:53

ANo.2

setprecisionは整数部の桁数を含む桁を指定するものですから、
> cout << fixed << setprecision(1) << num/7.0 << endl;
はnumが123.45であった場合1と出力されます。

>cout << round((num/7.0)*10)/10 << endl;

numが123.45だと出力は17.6になりますね。

投稿日時 - 2019-05-04 19:05:01

お礼

カテゴリーマスターが何なのかわからないですが本当にカテゴリーマスターさん?

投稿日時 - 2019-05-05 06:39:48

ANo.1

>プログラミングで言う四捨五入とはいったいなんなのでしょうか?
算数と同じです。所定の桁が4以下ならば切り捨て、5以上ならば切り上げです。

>丸めと四捨五入が混同していてよくわからなくなってます
丸めという概念の中に「切り捨て」「切り上げ」「四捨五入」というサブ概念があります。

投稿日時 - 2019-05-04 17:36:19

お礼

小数点第2位を四捨五入しなさいと言われた時はどちらも同じですか?

投稿日時 - 2019-05-04 18:12:53

あなたにオススメの質問