• ベストアンサー

C++のsetprecisionは四捨五入ですか?

Proof4の回答

  • ベストアンサー
  • Proof4
  • ベストアンサー率78% (151/192)
回答No.1

デフォルトでは四捨五入のような動作(厳密にはFE_TONEARESTという丸め方式)をしますが、std::fesetroundを指定することで切り下げにも切り上げにも変更することができます。

参考URL:
https://cpprefjp.github.io/reference/cfenv/fesetround.html
uhu71539
質問者

お礼

丸めの意味が分からず調べてたら返答が遅くなりました。 つまり四捨五入のようだけど四捨五入ではないということなんですね。 回答ありがとうございました。

関連するQ&A

  • C++の四捨五入

    プログラミングで言う四捨五入とはいったいなんなのでしょうか? 丸めと四捨五入が混同していてよくわからなくなってます C++でこれは四捨五入ですか? cout << fixed << setprecision(1) << num/7.0 << endl; いままで、とはいっても初心者ですが四捨五入の時は以下のようにしていました。 cout << round((num/7.0)*10)/10 << endl; 小数点第2位を四捨五入しなさいと言われた時はどちらも同じですか?

  • 四捨五入ってどうやるのでしょう?

    少数第2位を四捨五入するのにはBigDecimal#setScale(int,int)を使うのは 分かるのですが、では少数第21位を四捨五入するのはどうすればよいのでしょうか?同じものを使うのか、それとも・・・。知っている方がいたら教えて下さい。

    • ベストアンサー
    • Java
  • 少数の四捨五入ってどうやってするんですか?

    少数の四捨五入ってどうやってするんですか? 例えば7分の1を少数に直して0.14285714になります。これを四捨五入するとなにになりますか?

  • 有効数字以下を四捨五入(Java)

    初心者です。よろしくお願いします。 Javaで有効数字の桁数を与えてそれ以下を四捨五入することはできますか。 できるなら方法を教えてください。 単に少数第○位を四捨五入するとあらかじめ決めておけばsetScaleメソッドでできると思うのですが、 例えば有効数字2桁と決めておいて、 34.1→34 3.41→3.4 0.341→0.34 といった具合に四捨五入する方法をお伺いしたいです。 よろしくお願いします。

    • ベストアンサー
    • Java
  • 少数の四捨五入について

    少数第3位未満の端数が出た場合四捨五入って 0.1234 の4を四捨五入するんですよね? わからなくて・・・回答よろしくお願いします

  • 概数と四捨五入

    概数の問題で子供(小6)に聞かれわかりませんでした。教えてください。 問題)商(76÷93)を上から3けたの概数で答えなさい 76÷93=0.8172・・・・ 子供は4けた目を四捨五入して答えを0.82としましたが, 正解は0.817でした。 まず上から3けたの考え方が違うようで、 こちらの過去の概数の質問を検索し「有効数字」なるものを発見しました。 簡単に考えると「ゼロは有効数字ではない」ので次の数字からひとけた目として カウントするとわかりました。(恥ずかしながら感激) もう一つわからないのが、問題には四捨五入をしなさいとは書いていないのに、 子供が当たり前のように四捨五入をしている事です。 概数の計算は問題に注釈がなくても、四捨五入をするのが一般的なのでしょうか。 そして極めつけが子供に「じゃ、もし(商の)答えが0.008172・・・だったら、 ゼロはどこまで(有効数字として)いれないの?」と聞かれ困りました。 私がしどろもどろに「小数点がつく前・・かな・・」と答えると 「あ、きっとそんな難しい問題はでないからいいよ。大丈夫。」と気をつかって もらい、なんとも情けなかったのです。 問題に書いてない場合でも概数は四捨五入をするのが一般的か? 商が0.008172・・・の場合、上から3けたの概数の答えは? おわかりになる方どうぞ教えて下さい。よろしくお願いします。

  • 小数の四捨五入

    お世話になります。 タイトルのとおりなのですが、ただ0.2332232…みたいな小数ではなく、 DBから取得した小数で、 2.46674e+007 のような感じで後ろに+~という文字がついてしまっている小数の四捨五入の仕方です。 これをroundで四捨五入すると、0になってしまいます。 // $float_numが2.46674e+007だとして // 小数第3位まで取得 $float_num = round($float_num,3); 出力結果:24667400 2.467という値を取得したいです。 どうかご教授いただけないでしょうか。

    • ベストアンサー
    • PHP
  • 四捨五入をするプログラムの書き方を教えてください

    円を入力して、ドルに直し、そのドルを少数点以下2桁で表すために、四捨五入をするプログラムを書きたいです。ただ、まだ授業で、printf, scanf, if文, switch文までしかやってないので、これらを使用してプログラムを書くやりかたを考えています。 四捨五入せずに、切り捨てるプログラムは下のように書いてみました。 よろしくお願いします。 #include <stdio.h> main() { double Y,D; printf("金額(円)を入力せよ:",Y); scanf("%lf",&Y); D=Y/101.48; printf("米ドルでは、%.2lfドルです。\n",D); }

  • ACCESSでの四捨五入について

    フォームで消費税を計算する場合に コントローソースに =[金額]×0.05をあたえ 少数点以下の桁数は0にしています この場合に消費税額が正の場合には小数点1ケタ目が四捨五入 されて 例 \251.5 → \252となりますが 負の場合には \-251.5 → \-251となります 伝票を赤黒する場合に誤差1円が出てきます 皆さん、こういった場合にどう対応されていますか? よろしくお願いします。

  • excelエクセルで関数MAXを使うと、勝手に四捨五入されてしまう。

    windowsでexcel(office 2007)を使っています。 以下のデータをMAX関数で処理すると、8という値がでてきてしまいます。 3.5  7.9  2.9  1.1 つまり、7.9が勝手に四捨五入されて、出力されます。四捨五入されずに、そのまま7.9と出力するにはどうすればよいでしょうか? 二重関数(ROUND(MAX))なども使いましたが、だめでした。 どうぞ、良きアドバイスをお願い致します。