[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. MYSQL二重丸めクエリ
- 3. グループ()でMongoDBの二重丸め誤差
- 4. 二重値の自動丸め
- 5. MS ExcelのようにC++で二重の値を丸める
- 6. 奇妙な二重の丸めの問題
- 7. 二重変数の合計
- 8. 条件文の二重値の丸め誤差を避けるには?現時点で
- 9. 丸め小数点
- 10. ハーフ偶数丸め
- 11. 丸め整数ルーチン
- 12. vb.netの二重ハッシュテーブルまたは二重ハッシュハッシュテーブル
- 13. gnuパラレルでの二重引用符の二重対の衝突
- 14. Javaでハッシュを二重に
- 15. C/C++での数式 - 丸めクエリ
- 16. iPhone ARKit内の場所が1か所で重複しています
- 17. ユーザ入力からの二重指数
- 18. Pythonメソッドの二重アンダースコア*引数*
- 19. 以下のメソッドまたはプロパティ間で呼び出しが曖昧である(小数点および二重丸め)
- 20. 数値を丸める
- 21. 浮動小数点丸め
- 22. XSLT 1.0 - 二重のバックスラッシュに
- 23. 二重引用符で囲んだ二重引用符
- 24. BigDecimalで丸めますか?
- 25. VB.NETで丸めます
- 26. トップに丸めます - C#
- 27. 「単一二重引用符で "」二重の二重引用符を置き換え
- 28. KnockoutJS二重バインディングウィジェットアプリケーション
- 29. 二重リンクリストコアダンプ
- 30. 二重リンクリスト
すばやく汚れた解決方法については、[この回答](http://stackoverflow.com/questions/485525/round-for-float-in-c/2249412#2249412)を特にお読みください。 – Jon