Mysql tipos de datos moneda y VFP

1,634 views
Skip to first unread message

amls

unread,
Aug 1, 2011, 4:02:44 PM8/1/11
to Comunidad de Visual Foxpro en Español
Hola amigos foxeros, deseo comentarles mi problema , a ver si me
puedan comentar su experiencia y sugerencias....

tengo una tabla en mysq el campo lo tengo en Floar 19,2, tengo un
formulario en VFP con campo Format 9 inputmask 999,999,999.99 value
0.00, resulta que cuando cargo numeros muy grandes (es algo contable)
y captura por ejemplo 2,409,764.15 obviamente si comas todo el numero
seguido, yo veo en el formulario que lo captura bien pero al momento
de hacer un insert en la tabla me lo guarda como 2,409,764.25 obvio si
comas, es decir me cambia despues del punto decimal, cabe senalar que
esto solo pasa con numero cifras de 6 ceros millones, alguna idea???

por sus ideas, observaciones y demas les agradezco

amls

Bj M

unread,
Aug 2, 2011, 10:19:09 AM8/2/11
to publice...@googlegroups.com
Es por el tipo de dato en mysql (float), cambialo a tipo decimal y se acaban los problemas.
 
saludos.
 
> Date: Mon, 1 Aug 2011 13:02:44 -0700
> Subject: [vfp] Mysql tipos de datos moneda y VFP
> From: amls....@gmail.com
> To: publice...@googlegroups.com

Carlos Miguel FARIAS

unread,
Aug 3, 2011, 7:34:32 AM8/3/11
to publice...@googlegroups.com
El mayor error de programación con datos de sistemas financieros es usar campos float para manejar datos numericos, tanto para importes como para cantidades (con decimales), los campos float fueron, son y serán un dolor de cabeza.
En sistemas financieros, hasta el ultimo centavo y hasta el ultimo gramo no pueden perderse porque produce inconsistencias que no son aceptadas.
En entornos cientificos (fisica, astronomia, etc.), los flotantes son apropiados, porque manejan magnitudes con rangos muy grandes, donde lo que importan son los valores significativos (no tener en cuenta algunos millones de kilometros a una estrella que esta a varios años luz, o que una explosion atomica tenga algunas toneladas de mas de potencia cuando manejas megatones no te afectan).

Walter R. Ojeda Valiente

unread,
Aug 3, 2011, 11:38:37 AM8/3/11
to publice...@googlegroups.com
Una regla para recordar es:
- Los campos FLOAT se deben utilizar cuando se MIDE algo: una distancia, un peso, un volumen, etc.
- Los campos DECIMALES o NUMÉRICOS se deben usar cuando se CUENTA algo: dinero, cantidades vendidas, etc.

Saludos.

Walter.




Date: Wed, 3 Aug 2011 13:34:32 +0200
Subject: Re: [vfp] Mysql tipos de datos moneda y VFP
From: carlosmig...@gmail.com
To: publice...@googlegroups.com

amls

unread,
Aug 4, 2011, 6:55:30 PM8/4/11
to Comunidad de Visual Foxpro en Español
Muchas gracias a todos por sus aportes y aclaraciones cada dia se
aprende algo nuevo, efectivamente cambie mi tipo de dato y listo
quedo, una curiosidad para descartar cuando asi pruebas incluso le di
un insert directoe n mysql y me di cuenta que era mysql quien me
cambiaba la cantidad, corregi e tipo de dato y listo

gracias mil a todos por sus sugerencias

On 3 ago, 10:38, "Walter R. Ojeda Valiente" <w...@hotmail.com> wrote:
> Una regla para recordar es:
> - Los campos FLOAT se deben utilizar cuando se MIDE algo: una distancia, un peso, un volumen, etc.
> - Los campos DECIMALES o NUMÉRICOS se deben usar cuando se CUENTA algo: dinero, cantidades vendidas, etc.
>
> Saludos.
>
> Walter.
>
> Date: Wed, 3 Aug 2011 13:34:32 +0200
> Subject: Re: [vfp] Mysql tipos de datos moneda y VFP
> From: carlosmiguelfar...@gmail.com
> To: publice...@googlegroups.com
>
> El mayor error de programación con datos de sistemas financieros es usar campos float para manejar datos numericos, tanto para importes como para cantidades (con decimales), los campos float fueron, son y serán un dolor de cabeza.
>
> En sistemas financieros, hasta el ultimo centavo y hasta el ultimo gramo no pueden perderse porque produce inconsistencias que no son aceptadas.
> En entornos cientificos (fisica, astronomia, etc.), los flotantes son apropiados, porque manejan magnitudes con rangos muy grandes, donde lo que importan son los valores significativos (no tener en cuenta algunos millones de kilometros a una estrella que esta a varios años luz, o que una explosion atomica tenga algunas toneladas de mas de potencia cuando manejas megatones no te afectan).
>
> El 2 de agosto de 2011 16:19, Bj M <bj...@hotmail.com> escribió:
>
> Es por el tipo de dato en mysql (float), cambialo a tipo decimal y se acaban los problemas.
>
> saludos.
>
>
>
>
>
>
>
> > Date: Mon, 1 Aug 2011 13:02:44 -0700
> > Subject: [vfp] Mysql tipos de datos moneda y VFP
> > From: amls.mb...@gmail.com

Carlos Miguel FARIAS

unread,
Aug 5, 2011, 6:00:13 PM8/5/11
to publice...@googlegroups.com
Un dato interesante para tener en cuenta.
Los campos decimales en mysql son comprimidos por definición.
En vfp, los campos decimales ocupan un byte por cada digito (y creo que el signo o algo mas).
En mysql no, se convierten en binarios de diferentes cantidad de bytes, por lo que son eficientes en cuanto al espacio en disco.
Esto si mal no recuerdo empezo con las ultimas versiones 4.3 o 5
Reply all
Reply to author
Forward
0 new messages