[C++] Redondear un entero positivo a la centena más proxima

Iniciado por djpacheco3, 3 Septiembre 2019, 21:36 PM

0 Miembros y 2 Visitantes están viendo este tema.

Loretz

Citarse desea redondear un entero positivo N a la centena mas proxima y visualizar la salida.
Para ello la entrada de datos debe de sr los cuatro digitos A,B,C,D del entero N. Por ejemplo, si A es 2, B es 3, C es 6 y D es2, entonces N será 2362 y el resultado redondeado será 2400. SiN es 2342, el resultado seeá 2300 , y si  N=2962, entonces el numero será 3000

En C++ moderno es inmediato, por ejemplo:

Código (cpp) [Seleccionar]
#include <cmath>
#include <iostream>

long redondear_a_la_centena(int n) {
    return std::lround(n / 100.0) * 100;
}

int main()
{
    std::cout << "2362 redondedo a la centena: " << redondear_a_la_centena(2362) << '\n';
    std::cout << "2342 redondedo a la centena: " << redondear_a_la_centena(2342) << '\n';
    std::cout << "2962 redondedo a la centena: " << redondear_a_la_centena(2962) << '\n';
}


Ventajas?
Ver la documentación, en especial "Error handling"
https://en.cppreference.com/w/cpp/numeric/math/round