Re: numeric vs real

From: Alvaro Herrera <alvherre(at)dcc(dot)uchile(dot)cl>
To: mmiranda(at)americatel(dot)com(dot)sv
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: numeric vs real
Date: 2005-04-27 19:12:37
Message-ID: 20050427191237.GA4700@dcc.uchile.cl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

On Wed, Apr 27, 2005 at 12:18:15PM -0600, mmiranda(at)americatel(dot)com(dot)sv wrote:
> Hola, cual es la opcion recomendada cuando se necesitan numeros bastante
> grandes pero sin decimales, en el manual dice que hacer calculos con valores
> numeric es mas lento que cuando usas real, alguien tiene experiencia
> practica con esto, yo necesito hacer operaciones arimeticas:

bigint?

> c = a - b
>
> donde a,b y c son numeros de 25 digitos pero solo enteros, ejemplo
>
> a = 50300000000000000000000
> b = 50399999999999999999999
>
> Uso tipo de datos real o numeric?, mi interes principal es rapidez, no
> precision, en este caso creo que no importa mucho ya que no hay redondeo de
> decimales, etc

Ojo que almacenar numeros muy grandes en punto flotante simplemente
mueve la perdida de precision hacia el otro lado de la coma ... Si
requieres que los numeros se preserven en toda exactitud (aunque sea sin
decimales), no puedes usar tipos de punto flotante.

alvherre=# select 5000000033000000000000000000003000::float - 5000000033000000000000000000500000::float;
?column?
----------
0
(1 fila)

alvherre=# select 5000000033000000000000000000003000::numeric - 5000000033000000000000000000500000::numeric;
?column?
----------
-497000
(1 fila)

Si no te sirve bigint (el cual no alcanza para 25 digitos), tendrias que
usar numeric.

--
Alvaro Herrera (<alvherre[(at)]dcc(dot)uchile(dot)cl>)
"Si quieres ser creativo, aprende el arte de perder el tiempo"

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message mmiranda 2005-04-27 19:13:52 RE: numeric vs real
Previous Message mmiranda 2005-04-27 19:12:19 RE: numeric vs real