C++で四捨五入する

小数点第一桁で四捨五入したい場合は,0.5を足してからint型に変換(切り下げ)すればいい.小数点第n桁以下で四捨五入したい場合は,10n - 1倍してから,0.5を足してint型に変換.その後,10n - 1で割り直す.

#include <cstdio>

int main(){
  float f1 = 5.4;
  printf("%f\n", float(int(f1 + 0.5))); // 5.000000
  float f2 = 3.8;
  printf("%f\n", float(int(f2 + 0.5))); // 4.000000
  float f3 = 2.63;
  printf("%f\n", float(int(f3 * 10 + 0.5)) / 10); // 2.600000
  float f4 = 7.2567;
  printf("%f\n", float(int(f4 * 100 + 0.5)) / 100); // 7.260000
}