C/Visual C - Especificar decimales de un float

 
Vista:

Especificar decimales de un float

Publicado por Vanchi (1 intervención) el 05/10/2005 20:18:56
Hola Gente,

Disculpen lo tonta de la pregunta, pero realmente necesito la respuesta.

NOTA: Programo en C++ con Dev C++ (compilador MinGW32)

Necesito que un número float tenga como máximo UN decimal.

Yo hice este procedimiento
valor *= 10;
valor = static_cast<int>(valor);
valor /= 10;

Pero, en primer lugar no me gusta y en segundo lugar, a veces el procedimiento (por causas de la matemática binaria) me retorna valores erroneos:

Ej.
valor = 62.75
Luego del procedimiento:
valor = 62.700001

¿Existe alguna forma de especificarle al compilador que la variable "valor" debe despreciar todos los decimales a partir del segundo?

Saludos
--
Iván (Vanchi) La Malfa
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

RE:Especificar decimales de un float

Publicado por chuidiang (73 intervenciones) el 06/10/2005 15:43:59
Hola:

No existe una forma de hacer que la variable no tenga los decimales que tenga que tener. Normalmente no es necesario que la variable desprecie los decimales, lo normal es no querer que en la presentacion salgan más decimales de la cuenta.

Si este es el caso, la funcion printf() puede escribir con los decimales que tú le digas de esta forma

printf ("%7.1f", valor);

Donde 7 es el numero de cifras totales que quieres, incluido el punto decimal y el signo y 1 es el numero de decimales que quieres.

Usando cout también tienes este tipo de cosas, pero no recuerdo muy bien como se hace. Si tienes interés dímelo y lo miraré para indicarte cómo.

Si necesitas que sea la variable la que tenga un decimal, lo que puedes hacer es trabajar con enteros multiplicados por 10 todo el tiempo. Luego ya dividirás por 10 a la hora de escribir los resultados.

Se bueno.
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

RE:Especificar decimales de un float

Publicado por Carlos Fabián (1 intervención) el 30/11/2005 04:39:10
Yo si necesito saber como hacerlo con cout
y si se puede hacer con una funcion en la que mis arguentos fueran el numero real en float y el numero de decimales en int, y que retornara el valor
te lo agradeceria muchisimo.

Gracias.
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
sin imagen de perfil

RE:Especificar decimales de un float

Publicado por chuidiang (73 intervenciones) el 03/12/2005 06:42:47
Hola:

Para hacerlo con cout existen cosas como esta

cout.setf( ios::fixed , ios::floatfield ) ; // formato fijo para los float, es decir, no usar 1.0e10
cout.precision( 3 ) ; // 3 decimales
cout.width( 7 ) ; // 7 cifras en total
cout << 1.3 << endl;

Si buscas en google "cout" y alguna de las palabras "setf", "width" y/o "precision" no te costará encontrar tutoriales con todas las opciones.

Se bueno.
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