¿Cómo redondeas los decimales en C ++?

Necesito ayuda para redondear un valor flotante a un lugar decimal.

Conozco setprecision(x) y cout << precision(x) . Ambos funcionan si quisiera redondear todo el flotador, pero solo me interesa redondear los decimales al décimo.

Hay otra solución que no requiere casting para int:

 #include  y = floor(x * 10d) / 10d 
 #include  int main() { float f1 = 3.14159f; float f2 = 3.49321f; std::cout << std::floor(f1 * 10 + 0.5) / 10 << std::endl; std::cout << std::floor(f2 * 10 + 0.5) / 10 << std::endl; std::cout << std::round(f1 * 10) / 10 << std::endl; // C++11 std::cout << std::round(f2 * 10) / 10 << std::endl; // C++11 } 

Puedes hacerlo:

 int main() { float a = 4212.12345f; float b = a * 10.0f; float c = ((int)b) / 10.0f; cout << c << endl; return 0; }