![]() |
problemas con un stringgrid
:D hola delphimaniacos!! :cool:
Bueno pues resulta q tengo un pequeño problemilla y es el siguiente tengo un stringgrid y quiero q los datos de una operacion q realizo tengan un cierto formato (10 digitos en la parte entera y 2 en la decimal) y lo he echo asi: stringgrid1.Cells[5,i]:=floattostrf(MAT.fieldbyname('unidadesar').ASFLOAT* (1/TABLE1.FIELDBYNAME 'U_CONVERT').ASFLOAT),ffFixed,10,2); pero no me da el resultado q yo esperaba xq me redondea y no me da los dos decimales entoces mi pregunta es :confused: ¿hay algo mal en el codigo? o ¿de q otra manera se puede hacer esto? Gracias y un saludo. |
Prueba con FormatFloat('#.##0.00', Numero)
|
he probado con lo q me ha dicho cadetill y no ha funcionado alguna otra idea?? :(
|
Hola Merlin!
Prueba con esto: Código:
varSaludos! |
Hola Nuria!
Muxas gracias por responderme, pero te tengo q decir q esa opcion ya la habia probado yo y aunq la he vuelto a probar por asegurarme no ha funcionado. Se os ocurre otra manera?? :( |
Cita:
|
Cita:
Cita:
:D |
Bueno la cosa sigue = he probado lo q cadetill me puso y no me da ningun error, pero no hace lo q deberia hacer, (eso es q no ha funcionado), se os ocurre el xq? o como hacerlo de otra manera lo mas curioso esq si el valor de la celda del stringgrid lo introduzco en un showmessage para ver q es lo q contiene antes de insertarlo si q es el correcto pero cuando se termina la ejecucion no se muestra ese valor en la celda sino q se ha redondeado.
Sabeis xq me puede estar pasando esto?? |
Acabo de probarlo y me ha funcionado sin problemas
Código:
procedure TForm1.Button1Click(Sender: TObject);Espero te sirva |
Cadetill muxas gracias por tu paciencia y por tu ayuda pero creo q todavia no lo he solucionado.
He exo lo siguiente: Resultado:=com.fieldbyname('cantidad_r').asfloat*(1/TABLE1.FIELDBYNAME('U_CONVERT').ASFLOAT); stringgrid1.Cells[3,i]:= FormatFloat('#,##0.00', Trunc(RESULTADO * 100) / 100); Pero no ha servido de nada sigue apareciendo la cantidad redondeada. Tb he probado con esto y me pasa lo mismo q la cantidad aparece redondeada stringgrid1.Cells[3,i]:= floattostrf(resultado,fffixed,10,2); hay algo mas por proba o hacer? |
Vamos a ver que entiendes por redondeado y contestame a estas preguntillas ;)
Qué valor tiene Resultado despues de la operación? Qué valor te devuelve FormatFloat? Es que eso te ha de funcionar!!! :confused: |
redondeo
1,52 se redondea a 2 1,25 se redondea a 1 eso es lo q entiendo yo por redondear. Resultado despues de la operación es 26,15 pero cuando se muestra en el stringgrid es 26 FormatFloat devuelve 26,15 Un saludo, merlin :( |
Mira en configuración regional lso separadores de miles y decimales que tengas configurados. Si el problema es ese, puedes solucionarlo así
Código:
var |
hola cadetill
La configuración regional es la correcta, es mas en el mismo stringgrid tengo algunas columnas q tienen los decimales puestos, pero hay otras q no me los pone. :( Alguna otra posibilidad de hacer q aparezcan los decimales?? |
Oeoeoeoeee
Por fin coño ya era hora muxas gracias a todos los q habeis respondido a mi duda, y la solución era, lo mas facil un simple "format" stringgrid1.Cells[3,i]:= format('%10.2f',[resultado]); Gracias a todos. |
merlin
Tu mensaje de hoy 10 de enero de 2004 no tiene nada que ver con este hilo de manera que lo moví a un nuevo hilo. // Saludos |
| La franja horaria es GMT +2. Ahora son las 22:24:27. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi