Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   Redondear en Builder c++ (https://www.clubdelphi.com/foros/showthread.php?t=17250)

alt126 30-12-2004 11:37:22

Redondear en Builder c++
 
Tengo un float, y quiero que se quede en 2 decimales. He visto muchos codigos hechos para delphi, pero todos usan la funcion round, o trunc, pero yo no la tengo en mi builder c++ 3. Alguien puede ayudarme...

Gracias,

Antonio

barman 03-01-2005 18:05:57

Usa las funciones

modf(x, &y); // parte entera y fraccionaria del numero
y
pow10(x); // elevas la potencia al numero.

Yo lo hago asin, aunque hay muchas mas formas.


/********************************************************
* METODO: redondeoDec() *
* *
* Redondea un n£mero fraccionario. *
*********************************************************/
double redondeoDec(double numero, int dec)
{
double entera, fraccionaria, fraccion;

fraccionaria = modf(numero, &entera);

fraccion = redondeo (fraccionaria * pow10(dec));
return(entera+(fraccion/pow10(dec)));
} /* End redondeo() ***
**************************/

alt126 04-01-2005 10:09:40

muchas gracias...
 
Algo de eso estaba pensando hacer, pero tu codigo me ha ahorrado mucho tiempo de pensar :confused:. 2 cosas que me gustaria comentarte a ver si tu sabes algo. Para redondear uso la funcion Ceil...supongo k no habra ningun problema con ella no?, y lo 2º es pq al usar el float, no funciona eso de quedarte solo con 2 decimales, solo con double?

Gracias,

Antonio

barman 04-01-2005 11:27:54

Cita:

Empezado por alt126
el float, no funciona eso de quedarte solo con 2 decimales, solo con double?

Es indiferente, al pasar los valores, puedes hacer un cast, pero no es necesario,

lo unico
fraccionaria = modf(numero, &entera);
fraccionaria = modl(numero, &entera);

Pero insisto que no es necesario.


Lo de Ceil, te puede servir, como dije antes, casi cada programador se ha creado su propia funcion para redondear, yo uso esta que es la misma que usaba antes que existiese builder como tal, y no me he preocupado en cambiarla.


La franja horaria es GMT +2. Ahora son las 11:52:55.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi