Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   El viejo y conocido tema de "redondeo".... (https://www.clubdelphi.com/foros/showthread.php?t=9603)

seb@ 27-04-2004 20:40:02

El viejo y conocido tema de "redondeo"....
 
Hola a todos!!!

Busqué en los mensajes enviados con respecto a este tema, pero no encontre ninguna respuesta que me resolviera este problema.

Tengo que redondear un numero a dos decimales, hasta aquí, ningun problema(porque puedo hacerlo con el SimpleRoundTo(x, -2)). El problema pasa es que tengo un valor que no tiene decimales que también y que debería hacerselos aparecer con alguna función o método.

Ej: 124 me tiene que aparecer 124.00
0 me tiene que aperecer 0.00
12,346 me tiene que aperecer 12,35

Desde ya muchas gracias!!!!

__cadetill 27-04-2004 20:46:26

una vez tienes el valor redondeado, puedes usar la función FormatFloat

Código:

str := FormatFloat('#,##0.00', Valor);
En la máscara que he puesto, te mostrará el valor con 2 decimales y separador de millares

seb@ 27-04-2004 22:28:09

no me redondea los valore enteros o con un decimal
 
Hice como me indicaste pero cuando me aparece un valor 0 por ej. yo quiero que lo transforme a 0.00 y no lo esta haciendo sino que deja el 0.

Tambien cuando me aparece 1.5 quiero que me muestre 1.50, y no lo esta haciendo, lo que estoy haciendo es lo siguiente:

FormatFloat('#.##0.00', SimpleRoundTo(query.FieldValues['valor'], -2));

cuando viene un 0, lo deja tal cual, sin poner el formate 0.00. Con los demas valores no tengo problemas.

saludos

marcoszorrilla 27-04-2004 22:35:16

Prueba esto a ver:

Código:

FormatFloat(',0.00', SimpleRoundTo(query.FieldValues['valor'], -2));
Un Saludo.

seb@ 27-04-2004 22:54:32

esta es la mascara...
 
Con las guias que me supieron dar llegue a la mascara buscada:

FormatFloat('#0.#0', 0);
El valor es 0.00

Gracias por sus ayudas!!!!

the darkness 28-04-2004 18:34:45

redondeo
 
si te sirve de algo existe una funcion llama "floattostrf" la cual te puede hacer eso que pides exactamente.

lo pones algo asi
edit1.text:=floattostr((25*145)/1234,ffnumber,6,2);

donde lo primero que se manda es la opraciòn o el numero a convertir.
el ffnumber es para dar una clasificaciòn.
el 6 es la presiciòn y se puede escoger desde 1 hasta .....
y el dos son los nùmero de caracteres.
atte
eduardo maldonado


La franja horaria es GMT +2. Ahora son las 06:45:05.

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