🌵

C++で小数点第n位の丸め処理

2022/11/18に公開

概要

C++で丸め処理をする機会があったのだが、イマドキの言語のように気が利いた機能はついていない様子。
ないなら作ろう。

double myRound(double number, int ndigits){
  double buf = number;
  buf = buf * pow(10, ndigits);
  buf = round(buf);
  buf = buf * pow(10, -ndigits);
  return buf;
}

解説

小数点を目的の位置にずらして丸めた後に元の位置へ戻している。
使い方はPythonのround関数と同じで、引数numberの小数部をndigits桁に丸めた値を返す。
https://docs.python.org/3/library/functions.html?highlight=round#round

Discussion