[ Foro de C++ ]

[CONSULTA] - Operar con n decimales de un numero.

01-May-2017 16:25
Paco Torres
1 Respuestas

Hola buenas.

Soy Paco y este es mi primer post aquí. Soy un muy novato en el mundo de la programación y justo hoy me he topado con un problema con los números en coma flotante (que aun no tengo muy claro como van).

Resulta ser que tengo dos números por ejemplo.
double a = 9231.15;
double b = 1091.72;
double z = a/b;
z = 8,455602169054336 (según la calculadora de Windows).

Bien, me gustaría poner el la variable "c" el valor del numero entero (en este caso "8") y Nº decimales (digamos n=2, por tanto "45") (Ojo no me hace falta normalizar) por tanto quedaría:

c = 8.45

He estado mirando que quizas pasando el numero "z" a String (variable cadena de caracteres, si no me equivoco). y luego con una sentencia "for" ir poniendo en una variable los enteros y luego los "n" decimales pude que lo consiga... pero no se como hacer esa sentencia "for".

Pueden echarme una mano por favor.

Muchas gracias por su tiempo.


29-May-2017 11:46
Nacho Cabanes (+32)

Perdona el retraso en contestar...

Básicamente tienes dos opciones:

1.- Operar con toda la precisión posible, y en el último momento mostrar los datos sólo con cierta cantidad de decimales.

2.- Redondear los datos a n decimales en cada paso.

En cualquier caso, hay varias formas de redondear o truncar números, según el comportamiento que desees en datos como 2.5. Si quieres que el número no sea entero, sino que tenga dos decimales, puedes hacer:

 
x =  round (n*100) / 100;
 


 






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)