C ++: redondeando al múltiplo más cercano de un número
OK, estoy casi avergonzado de publicar esto aquí (y lo eliminaré si alguien vota para cerrar) ya que parece una pregunta básica.
¿Es esta la forma correcta de redondear a un múltiplo de un número en C ++?
Sé que hay otras preguntas relacionadas con esto, pero estoy especialmente interesado en saber cuál es la mejor manera de hacer esto en C ++:
int roundUp(int numToRound, int multiple)
{
if(multiple == 0)
{
return numToRound;
}
int roundDown = ( (int) (numToRound) / multiple) * multiple;
int roundUp = roundDown + multiple;
int roundCalc = roundUp;
return (roundCalc);
}
Actualización: lo siento, probablemente no he dejado en claro la intención. Aquí hay unos ejemplos:
roundUp(7, 100)
//return 100
roundUp(117, 100)
//return 200
roundUp(477, 100)
//return 500
roundUp(1077, 100)
//return 1100
roundUp(52, 20)
//return 60
roundUp(74, 30)
//return 90
EDITAR: Gracias por todas las respuestas. Esto es lo que busqué:
int roundUp(int numToRound, int multiple)
{
if(multiple == 0)
{
return numToRound;
}
int remainder = numToRound % multiple;
if (remainder == 0)
{
return numToRound;
}
return numToRound + multiple - remainder;
}