C/Visual C - Como definir presicion en variables????

 
Vista:

Como definir presicion en variables????

Publicado por Enrique (5 intervenciones) el 17/04/2002 19:18:21
En ansi C como puedo definir precision en variables de tipo flotante para utilizar solo un digito despues del punto decimal al hacer calculos??????
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

RE:Como definir presicion en variables????

Publicado por chuidiang (6 intervenciones) el 21/04/2002 16:50:38
A una variable flotante no puedes definirle precisión. Lo único que podrias hacer es echar una pequeña cuenta para eliminar decimales. Sería algo asi como

valor_un_decimal = ( (int)(valor_muchos_decimales*10) ) / 10.0;

es decir, la multiplicas por 10, la conviertes a entero para eliminar todos los decimales y el resultado entero lo divides por 10, obteniendo un solo decimal.

Ojo, debes dividir por 10.0 y no por 10, porque en C, 23/10 da 2 (division de enteros da resultado entero) y 23/10.0 da 2.3 (al haber un floante, el resultado da flotante).

Otra cosa que puedes tener en cuenta, es que al convertir a entero, estás truncando los decimales. Es decir, (int)10.9 te queda como 10, y a lo mejor no es lo que deseas. Si quieres redondear, basta sumar 0.5 antes de convertir a entero, así 10.9 + 0.5 = 11.4 y al truncar (int)11.4 queda como 11. Es decir, el 10.9 te quedaría como 11

De todas formas, lo más sencillo es usar todos los decimales y truncarlos en el momento de escribirlos en pantalla

printf ("%10.1f\n", valor);

10 es el numero de cifras totales que quieres y el .1 el numero de decimales que quieres.

Espero que todo esto no lo supieras ya y te sirva de ayuda.

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:Como definir presicion en variables????

Publicado por Enrique (5 intervenciones) el 23/04/2002 22:59:51
Muchas gracias, fueron de gran ayuda los tips.
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