FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
problemas con un stringgrid
hola delphimaniacos!!
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 ¿hay algo mal en el codigo? o ¿de q otra manera se puede hacer esto? Gracias y un saludo.
__________________
.:|Merlin|:. |
#2
|
|||
|
|||
Prueba con FormatFloat('#.##0.00', Numero)
|
#3
|
||||
|
||||
he probado con lo q me ha dicho cadetill y no ha funcionado alguna otra idea??
__________________
.:|Merlin|:. |
#4
|
||||
|
||||
Hola Merlin!
Prueba con esto: Código:
var Resultado : Double; /// Resultado:= MAT.fieldbyname('unidadesar').ASFLOAT* (1/TABLE1.FIELDBYNAME 'U_CONVERT').ASFLOAT; stringgrid1.Cells[5,i]:= FloatToStr(Resultado); /// Saludos! |
#5
|
||||
|
||||
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??
__________________
.:|Merlin|:. |
#6
|
|||
|
|||
Cita:
|
#7
|
||||
|
||||
Cita:
Cita:
|
#8
|
||||
|
||||
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??
__________________
.:|Merlin|:. |
#9
|
|||
|
|||
Acabo de probarlo y me ha funcionado sin problemas
Código:
procedure TForm1.Button1Click(Sender: TObject); var s: string; begin s := FormatFloat('#,##0.00', 12.2352); stringgrid1.Cells[4,2]:= s; stringgrid1.Cells[4,3]:= FormatFloat('#,##0.00', Trunc(12.2352 * 100) / 100); end; Espero te sirva |
#10
|
||||
|
||||
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?
__________________
.:|Merlin|:. |
#11
|
|||
|
|||
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!!! |
#12
|
||||
|
||||
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
__________________
.:|Merlin|:. |
#13
|
|||
|
|||
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 OldDS, OldTS: Char; begin OldDS := DecimalSeparator; OldTS := ThousandSeparator; DecimalSeparator := '.'; ThousandSeparator := ','; // operaciones DecimalSeparator := OldDS; ThousandSeparator := OldTS; end; |
#14
|
||||
|
||||
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??
__________________
.:|Merlin|:. |
#15
|
||||
|
||||
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|:. |
#16
|
||||
|
||||
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 |
|
|
|