Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: .:: KsV ::. en 26 Diciembre 2015, 06:09 am



Título: [?] Ayuda como redondeo el valor de una variable en c
Publicado por: .:: KsV ::. en 26 Diciembre 2015, 06:09 am
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


Título: Re: [?] Ayuda como redondeo el valor de una variable en c
Publicado por: 0xFer en 26 Diciembre 2015, 06:40 am
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/

Código
  1. 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


Título: Re: [?] Ayuda como redondeo el valor de una variable en c
Publicado por: class_OpenGL en 26 Diciembre 2015, 10:19 am
Puedes hacer tu propia función 'round':

Código
  1. #include <math.h>
  2.  
  3. double Round(double d, int decimals) {
  4.    return (double)((int)(d * pow(10, decimals))) / pow(10, decimals);
  5. }

Estoy casi seguro de que existe una versión más reducida, pero al menos da una idea...


Título: Re: [?] Ayuda como redondeo el valor de una variable en c
Publicado por: Zekkk en 26 Diciembre 2015, 22:23 pm
Depende de como quieras redondear, si quieres hacer algo como lo que propone class_OpenGL es mucho mas eficiente hacer
Código:
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.


Título: Re: [?] Ayuda como redondeo el valor de una variable en c
Publicado por: class_OpenGL en 27 Diciembre 2015, 00:42 am
Claro, pero mi caso es más general :P


Título: Re: [?] Ayuda como redondeo el valor de una variable en c
Publicado por: .:: KsV ::. en 29 Diciembre 2015, 04:23 am
Gracias Por Los Links Los Checare