Dev - C++ - Ayuda con un programa que redondee números

 
Vista:
sin imagen de perfil
Val: 42
Ha disminuido su posición en 3 puestos en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Ayuda con un programa que redondee números

Publicado por Norberto (10 intervenciones) el 07/04/2021 00:37:21
WINWORD_X8whJrl1TU

Alguien podría ayudarme con este problema soy nuevo y quisiera saber la solución de este problema.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 338
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Ayuda con un programa que redondee números

Publicado por Martín (158 intervenciones) el 07/04/2021 03:13:31
Una respuesta "simple" para una pregunta "simple":

El C++, a partir del estándar del 2011 (C++11), tiene la función round() en <cmath>, que redondea usando el método que comúnmente se conoce como "half away from cero" (las mitades alejadas del cero) o, lo que es lo mismo, "half towards infinity" (las mitades hacia el infinito - mas infinito para los positivos, menos infinito para los negativos). Y lo hará así, independientemente del modo de redondeo del sistema.

Pero bueno, como dijo Pascal en su momento,,, para entender una proposición se debe entender cada uno de sus términos. Y para recordar que hasta las cosas más simples no son tan simples como uno quisiera, faltaría aclarar qué es eso de "independientemente del modo de redondeo del sistema". Que bueno, sucede que el sistema donde se está ejecutando tu programa ya tiene establecido un modo de redondeo, que puede ser este "half away from cero" o no, que hay varios (Wikipedia menciona 6: https://en.wikipedia.org/wiki/Rounding), y que tu programa puede modificar si lo desas (https://docs.microsoft.com/en-us/cpp/build/reference/fp-specify-floating-point-behavior?view=msvc-160)

Todos esos métodos son convencionales, aclaro esto porque no faltan los fanáticos sabelotodo que conocen uno o dos y acusan a todo los demás de estar equivocados. Y en este tema como en todos los demás, los fanáticos siempre están equivocados, por supuesto.

Pero yendo al ejemplo "simple", nada más que:

1
2
3
4
5
6
7
8
9
#include <iostream>
#include <cmath>
 
int main()
{
    std::cout << "std::round(5.3) == " << std::round(5.3) << '\n';   //  5
    std::cout << "std::round(5.8) == " << std::round(5.8) << '\n';   //  6
    std::cout << "std::round(3.9) == " << std::round(3.9) << '\n';   //  4
}


-- Ah, ¿que quién es Pascal? Bueno, era un filósofo que de importante que fue, hasta el lenguaje de programación "Pascal" se nombró así en su honor... figúrate. ¿Que si tiene mucho que ver? No, nada.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar