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)
-   -   Duda con tipo decimal o numeric (https://www.clubdelphi.com/foros/showthread.php?t=13443)

jwmoreira 19-08-2004 00:35:10

Duda con tipo decimal o numeric
 
Holas señores fiberos, bueno, cada día entrando un poco más a este mundo, y por consiguiente saldrán mas dudas y los molestare más :) , como trabajan estos tipo de datos:

decimal(10,2) son 10 enteros y dos decimales o 8 enteros y 2 decimales
lo mismo para el caso de numeric(10,2).


Saludos,


Jorge.

Rufus 19-08-2004 09:21:52

Cita:

Empezado por jwmoreira
Holas señores fiberos

¿Fiberos? Muy ingenioso, no se me había ocurrido utilizar una palabra para nombrar a los que utilizamos firebird.

Los numero decimales con coma fija funcionan de la siguiente manera.

  • Numeric(10,2): Se almacenan exactamente 10 dígitos totales, de los cuales 2 son dígitos decimales fijos a la derecha del punto decimal. Es decir se almacena 00000000.00
  • Decimal(10,2): Se almacenan al menos 10 dígitos totales, pero puede que más si es necesario, de los cuales 2 son dígitos decimales fijos a la derecha del punto decimal.

ASAPLTDA 19-08-2004 09:46:02

Decimal Numerico
 
TEngo una aplicacion en interbase 6.0 y la voy a migrar a firebird 1.5.
Uno de los camios que hare son los cambos integer, float a decimal y/o numerico.
Cual seria el mas aconsejable?
Como funciona el signo para l;os camposvalores negativos, ocupan lugar en el espacio asignado?
Que se quiere decir ocupa al menos 10,2 quiere decir 11


gracias por sus recomendaciones

Carlos :confused:

Rufus 19-08-2004 11:20:33

Normalmente utilizo el tipo de datos decimal.

Parece ser que en la práctica, al menos en firebird 1.5, decimal y numeric se comportan igual y que los dos pueden almacenar más digitos de lo especificados en la precisión dependiendo de unas reglas. Aquí vemos como almacena interbase/firebird realmente los datos dependiendo de la precisión especificada:

Definicion____________________________Tipo de datos creado

Decimal(1)-Decimal(4)_________________Small Integer
Decimal(5)-Decimal(9)_________________Integer
Decimal(10)-Decimal(18)_______________Int (64)

Funciona así: si creamos un decimal con precision 5, por ejemplo decimal(5,2), internamente se almacena como un integer. Según esto, podríamos llegar a almacenar numeros de hasta 9 dígitos, contando decimales, es decir que podria poner 5555555.55 sin problema. Pero lo mejor siempre será crear la precisión lo suficientemente grande como para que no se de el caso de tener que almacenar un número mayor, por lo que pueda pasar.

El signo, si es negativo, parece que no ocupa sitio de los dígitos especificados.


La franja horaria es GMT +2. Ahora son las 02:21:23.

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