[OK]を、私は数8.47434
を持っていたとします。私はそれを8.5小数点以下1桁に丸めたい。どのように私はC++でこれを行うことになるでしょうか
2
A
答えて
3
を乗算して10
を乗算し、10
で再度除算します。
例:
round(10 * 8.47434f)/10;
編集:
OK、私はちょうどround()
は常にmath.h
に存在していないことが判明。
上記はgccとicl(Microsoftのライブラリを使用)では動作しますが、tccでは動作しません。
は、標準ライブラリの一部です。したがって、丸めるために、0.5
を追加してfloor()
を使用することができます。
例:
floor(10 * 8.47434f + 0.5f)/10;
0
あなたは10によって複数が10でint型と除算に0.5キャストを追加することができます。
数値が負の場合は0.5を減算し、負の数値の場合は10を掛けて除算します。
2
std::floor(d)+std::floor((d-std::floor(d))*10.0+0.5)/10.0
はいえあらかじめご了承(d
を経由してあなたの番号になります)10によって、元のダブルを掛ける他の回答とは対照的に、この方法は、精度を失うことはありませんそれをやって浮動小数点数はのいずれかを表すことはできません。ダブルスの場合:1.35
は1.3999999999999999
になります。 123.34
は、最初にの代わりに123.3
に切り捨てるように123.34999999999999
と表されます。
関連する問題
- 1. 二重丸めクエリ
- 2. 二重値の丸め指数
- 3. Excel VBAの二重丸め
- 4. MYSQL二重丸めクエリ
- 5. Cで二重に丸めた値
- 6. グループ()でMongoDBの二重丸め誤差
- 7. 二重値の自動丸め
- 8. Javaで二重の値を10桁に丸めますか?
- 9. MS ExcelのようにC++で二重の値を丸める
- 10. 日付に丸めと二重以外の丸め値を加算する違いはありますか?
- 11. 奇妙な二重の丸めの問題
- 12. 計算なしの二重丸め誤差
- 13. Swift 3 Migration - 二重拡張丸め問題
- 14. MySQLは二つの場所
- 15. 科学的な書式なしで二重に印刷し、最も近い整数に丸めた
- 16. Smalltalkで整数に丸めます
- 17. 変数尺度で最も重要な要素に丸めますか?
- 18. 二重配列を比較するとき、丸め誤差をどのように考慮しますか?
- 19. 条件文の二重値の丸め誤差を避けるには?現時点で
- 20. シグモイド関数の場所はニューラルネットワークで重要ですか?
- 21. 二重変数の合計
- 22. 丸め整数ルーチン
- 23. カスタム丸め関数
- 24. 丸め小数点
- 25. ハーフ偶数丸め
- 26. 私の弾丸が間違った場所に出現する
- 27. 重要度別に丸めたSQL(Excelのfloor関数に相当)
- 28. マングースで重複を扱う場所
- 29. 場所に応じてドロップダウン - 重力フォーム
- 30. ggpairsの丸め数字
すばやく汚れた解決方法については、[この回答](http://stackoverflow.com/questions/485525/round-for-float-in-c/2249412#2249412)を特にお読みください。 – Jon