1. ホーム
  2. c++

[解決済み】C++でfloatのround()

2022-04-02 09:15:36

質問

簡単な浮動小数点の丸め関数が欲しいのですが。

double round(double);

round(0.1) = 0
round(-0.1) = 0
round(-0.9) = -1

を見つけることができます。 ceil()floor() を追加しました。 round() .

C++の標準ライブラリに別の名前で存在するのか、それとも欠落しているのでしょうか?

解決方法は?

cmathではC++11から利用可能です(曰く http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3337.pdf )

#include <cmath>
#include <iostream>

int main(int argc, char** argv) {
  std::cout << "round(0.5):\t" << round(0.5) << std::endl;
  std::cout << "round(-0.5):\t" << round(-0.5) << std::endl;
  std::cout << "round(1.4):\t" << round(1.4) << std::endl;
  std::cout << "round(-1.4):\t" << round(-1.4) << std::endl;
  std::cout << "round(1.6):\t" << round(1.6) << std::endl;
  std::cout << "round(-1.6):\t" << round(-1.6) << std::endl;
  return 0;
}

出力します。

round(0.5):  1
round(-0.5): -1
round(1.4):  1
round(-1.4): -1
round(1.6):  2
round(-1.6): -2