Ver Mensaje Individual
  #2 (permalink)  
Antiguo 09/11/2009, 09:28
Avatar de Claw
Claw
 
Fecha de Ingreso: abril-2009
Mensajes: 299
Antigüedad: 15 años, 10 meses
Puntos: 9
Respuesta: Problema Redondeando un numero

Te sugiero algo que yo haría "a priori" (aunque fuera ineficiente y todo lo que se quiera).

1. Obtengo mi número con infinitos decimales
2. Yo quiero truncarlo en, supongamos, 3 decimales.
3. Convierto el número con infinitos decimales a una string (C++) o de tipo char (C). Por ejemplo haciendo:

float data;
char bur[100];
sprint(buf,"%f", data);

4. Corto la ristra resultante hasta el número de decimales que me hayan dicho. Como en mi ejemplo quiero tres, pues busco el caracter "." (punto) y de ahí en adelante avanzo tres y corto. Por tanto, si tenía 3.11123456 me quedaría 3.111 ("23456" no entraría).
5. Reconviertes a float el resultado (atof)

Salu2!

PD: función atof [http://www.conclase.net/c/librerias/....php?fun=atof]