campo money en Firebird
Hola amigos estoy con Firebird 2.0, intento crear un campo money en firebird, hago lo sig.:
CREATE DOMAIN MONEY INTEGER default 0 pero el tema es que no me deja decimales, probe con float pero al ingresar 10.20 en dicho campo al hacer post me lo convierte a 10.1999998092651, necesito poder controlar la cantidad de decimales. |
Resp
Aunque hay otro tipo como float, decimal y numeric. Pero con los numeric hay que tener mucho cuidado y saber como trabajan realmente. |
Hola...
Yo lo manejo así y no tengo problemas:
Saludos... |
Resp
El problema nace cuando hay que hacer alguna division por ejemplo en un campo calculado. Ya que al hacer uan division si el divedendo no contiene los numeros decimales de la presicion el sistema intuye que debe tener 4 decimales los del divisor y los del dividendo.
La cosa es mas complicado que lo que te acabo de explicar. |
Pues según una ayuda de Firebird que encontré:
Cita:
Y te digo, hasta ahora no he tenido problemas de ningún tipo... Saludos... |
Al intentar:
CREATE DOMAIN MONEY DOBLE PRESICION me da un error "doble" supongo es "double" pero tambien me da error presicion?? |
Ya esta es DOUBLE PRECISION
|
Gracias, funciona, con double precision no puedo especificar los decimales?, en numeric si, pero no sabia que puede traerme problemas con alguna cuenta, para sumar restar dividir y multiplicar como si fuera diner me recomiendas double precision?
hasta que valr llega? |
que significa el primer valor de numeric?
numerc(10,2) el 2 significa la cantidad de decimales pero el 10? se que va de 1 a 18 |
Resp
Aqui en e foro hay un hilo donde hay un documento que explica de manera muy completa como es el meoyo con con numeric. Si mas no recuerdo lo expuso roman. Esto se lo digo y siempre mucho incapi haste que paso un problema con los numeric que casi me vuelve loco.
|
creo que la dase de datos debe estar en Dialect 3 para que sea correcto el manejo de decimales. con IBExpert la puedes cambiar.
|
Estoy probando con numeric, pero quiero mostrar dos digitos despues de la coma, o sea $ 100,20
el tema es que cuando no hay decimales me muestra 100 yo quiero que se vea 100,00 y si es por ejemplo 1000 se vea 1.000,00 como hago ? Salu2 |
Cita:
Salud OS. Edito: esto es en Delphi, no en la base de datos., |
|
Estoiy en Firebird con los componentes query de MDO, no veo donde esta el editor de campos, esta en las propiedades del Query?
|
Veo el campo money, ahora puedo eliminar el signo de la moneda?
lo veo $ 10,150.20 puedo hacer que solo se vea 10,150.20? |
Cita:
Solo requieres de colocar una mascara al campo en su propiedad mask, algo así ,0.00 Salud OS |
Gracias Egostar por tu ayuda, eso es lo que necesitaba, la idea es manejar mas de una moneda, salu2
|
Resp
Pruben esto creen un dominio numeric(18.2)
luego creen una tabla con los campos c1, c2, c3 de tipo numeric y un cuarto campo calculado c4 compute by c1*c2/c3 he introduzcan datos y luego me cuentan. |
Retomo este hilo, ya que en tiempo de diseño todo va bien, pero si quiero cambiar el displayformat de un campo en tiempo de ejecucion, como se hace?
probe algo asi: tabla.Fields.FieldByName('pendiente').EditMask:=',0.00' pero no funciona, como llego a la probiedad displayformat en tiempo de ejecucion, con una consulta sql? Salu2 |
resp
#,##0.00 siempre muestra los ceros decimales
#,##0.## solo muestra los cero decimale si los hay |
... en tiempo de ejecución:
Si hago la consulta directamente podría intentar algo como esto:
, pero si es dentro de Delphi qué tal fijar la propiedad DisplayFormat?
... bueno, y como el hilo está relacionado con los tipos de datos, sugiero leer este enlace (es de hace tiempo, pero según veo en los documentos correspondientes a las últimas versiones en esencia todavía aplica): http://www.marteens.com/trick25.htm |
resp
Con magia. EL display format es del componente y la base de datos es otra cosa.
Son dos mundos diferentes. |
(que raro... que no envié el mensaje pero estaba convencido de que sí... ¿?¿?¿?).
Bueno, había escrito que sí, que es claro, que está bien el comentario, pero al mismo tiempo no, porque en el mensaje dice muy claro: "Código SQL" y "Código Delphi". Pero que alguien no lo entienda, ... ? Como dicen, a veces por querer hacer más se hace menos, pero la verdad no quiero asumir esa responsabilidad. |
La franja horaria es GMT +2. Ahora son las 19:22:47. |
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