Bueno tengo dos variables del tipo float
x= 1.12349
y=1.1248648
si las compara para ver si son iguales con (if x ==y){
}
Dara resultado falso
lo q qiero es q redonde el valor de las 2 variables a 2 desimales de esta forma al compararla dara verdadero
en vb usaba round()
x=round(1.12349,2)
y=round( 1.1248648,2)
if x=y then
msgbox "="
elae
msgbox "<>"
end if
En C como qdaria
Saludos
Creo que no se puede. Pero si puedes comparar variables de tipo float utilizando otro método. fíjate en éste link; http://plagatux.es/2009/07/tip-cc-precision-en-numeros-reales/
if (fabs (x-b) < error)
Es eso lo que buscas, sólo que tienes que establecer un valor para "error" que mientras más pequeño sea más precisa será la comparación. El fabs es una función para devolver el valor absoluto del parámetro y está en math.h
Este otro link ya es por si quieres saber más: http://www.cygnus-software.com/papers/comparingfloats/comparingfloats.htm
Puedes hacer tu propia función 'round':
#include <math.h>
double Round(double d, int decimals) {
return (double)((int)(d * pow(10, decimals))) / pow(10, decimals);
}
Estoy casi seguro de que existe una versión más reducida, pero al menos da una idea...
Depende de como quieras redondear, si quieres hacer algo como lo que propone class_OpenGL es mucho mas eficiente hacer printf("%.2f", valor)
si lo que quieres es redondear al valor mas cercano, al mas alto, o al mas bajo ya hay funciones que hacen eso: roundf, ceilf, floorf respectivamente.
Claro, pero mi caso es más general :P
Gracias Por Los Links Los Checare