Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   campo money en Firebird (https://www.clubdelphi.com/foros/showthread.php?t=44748)

ebeltete 13-06-2007 20:06:26

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.

rastafarey 13-06-2007 20:12:50

Resp
 
Código SQL [-]
CREATE DOMAIN MONEY DOBLE PRESICION

Aunque hay otro tipo como float, decimal y numeric. Pero con los numeric hay que tener mucho cuidado y saber como trabajan realmente.

maeyanes 13-06-2007 20:14:08

Hola...

Yo lo manejo así y no tengo problemas:

Código SQL [-]
CREATE DOMAIN TCURRENCY AS
  NUMERIC(12, 2)
  DEFAULT 0;


Saludos...

rastafarey 13-06-2007 20:20:40

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.

maeyanes 13-06-2007 20:27:09

Pues según una ayuda de Firebird que encontré:

Cita:

Empezado por Firebird 2.0 PSQL Reference Manual
Firebird supports two scaled datatypes, NUMERIC and DECIMAL, for handling numeric data with a fixed decimal point, such as monetary values. You can specify optional precision and scale factors for both datatypes:

http://www.janus-software.com/fbmanu...=psql&topic=30

Y te digo, hasta ahora no he tenido problemas de ningún tipo...



Saludos...

ebeltete 13-06-2007 20:30:07

Al intentar:
CREATE DOMAIN MONEY DOBLE PRESICION
me da un error "doble" supongo es "double" pero tambien me da error presicion??

ebeltete 13-06-2007 20:30:43

Ya esta es DOUBLE PRECISION

ebeltete 13-06-2007 20:33:51

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?

ebeltete 13-06-2007 20:38:03

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

rastafarey 13-06-2007 20:38:05

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.

gmontes 13-06-2007 22:28:22

creo que la dase de datos debe estar en Dialect 3 para que sea correcto el manejo de decimales. con IBExpert la puedes cambiar.

ebeltete 26-07-2007 01:51:44

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

egostar 26-07-2007 02:27:16

Cita:

Empezado por ebeltete
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

En el editor de campos de la tabla o query, selecciona el campo que deseas y hay una opcion de las propiedades que se llama currency, asignalo como True.

Salud OS.

Edito: esto es en Delphi, no en la base de datos.,

Ivanzinho 26-07-2007 09:32:41

revisa esto

Un saúdo.

ebeltete 27-07-2007 01:36:41

Estoiy en Firebird con los componentes query de MDO, no veo donde esta el editor de campos, esta en las propiedades del Query?

ebeltete 07-08-2007 03:55:27

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?

egostar 07-08-2007 04:18:07

Cita:

Empezado por ebeltete (Mensaje 221003)
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?

Bueno, eso cambia totalmente el concepto de money que inicialmente solicitaste, eso ya no es money, es una edición simple de un campo númerico.

Solo requieres de colocar una mascara al campo en su propiedad mask, algo así ,0.00

Salud OS

ebeltete 07-08-2007 12:21:09

Gracias Egostar por tu ayuda, eso es lo que necesitaba, la idea es manejar mas de una moneda, salu2

rastafarey 07-08-2007 19:45:05

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.

ebeltete 05-03-2008 13:26:14

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


La franja horaria es GMT +2. Ahora son las 02:57:09.

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