Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   problemas con redondeo (decimales) (https://www.clubdelphi.com/foros/showthread.php?t=52619)

Milperrimo 26-01-2008 01:21:55

problemas con redondeo (decimales)
 
Saludos, tengo un problemaaaaa muy grande, tengo una funcion que me calcula el precio ya con impuestos y esas cosas, la cosa es que el precio que me queda es 34.0055, peroooooooooo lo necesito redondear a 2 decimales es decir que a la hora de guardarlo quede como 34.00 pero nooo, me devuelve 34.01, y esto me esta creando graves problemas con los cuadres por ese centavito, he probado con todas las funciones de redondeo y otras cosas y nada, sigue saliendo el 01, alguien sabe como hacerle para que salga el 34.00????????????????????????????????????????????????????????????????

Caral 26-01-2008 02:01:38

Hola
Que raro la funcion Round( ) deja sin decimales, luego seria nada mas la presentacion que se le de.
No se me imagino debe servir.
Saludos

cHackAll 26-01-2008 02:44:20

Pues comparto en parte con Caral, pero tomando en cuenta que lo que necesitas es una especie de truncado en los dos decimales; yo personalmente tomaría ésta opción:

Código Delphi [-]
 x := (Int(x) * 100) / 100;

Saludos

Lepe 26-01-2008 02:57:24

Ten cuidado con lo que redondeas, mira las leyes de tu país.

Al menos en España no está permitido redondear importes que entren en otros cálculos, por ejemplo, no puedes redondear la base imponible o el porcentaje de iva. Solo puedes redondear el Total de la factura.

Como ya te han dicho Round puede servir, y en la ayuda obtendrás referencias a SetRoundMode (creo recordar) que es quien decide si redondear a la alza, a la baja, etc.

Si no recuerdo mal, delphi por defecto usa el redondeo "del banquero". De todas formas, revisa este mensaje de Al González, como siempre, no tiene desperdicio.

Saludos

Milperrimo 26-01-2008 05:33:03

Ok, gracias a todos, voy a ver ke rrollo con esto que me acaban de decir


La franja horaria es GMT +2. Ahora son las 23:04:12.

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