![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Muchas gracias, Oscar.
Ahora sí puedo darte una de muchas soluciones posibles: Para valores monetarios, es mejor usar variables de tipo Currency (que son de punto fijo) que variables de tipo Double. Además, conviene usar la propiedad AsCurrency en lugar de AsFloat. Con todo esto las operaciones serán precisas. Nos lo confirmas, por favor. ![]() Al. |
|
#2
|
|||
|
|||
|
Si no me equivoco lo que sucede es todas las bases de datos cuando almacena sun valor en un tipo de dato númerico lo guardan en binario, y el caso es que el paso de flotantes en decimal a binario y viceversa no es igual por lo que en algunos casos un número flotante decimal exacto al pasarlo a binario se convierte en periodico puro y por lo tanto el valor con que se guarda en la bd no es el mismo que hemos querido almacenar. Al recuperar el valor nos encontramos con problemas de ese estilo. En mi caso lo que suelo hacer cuando me encuentro con estes problemas es aplicar una función al valor recien recuperado de la bd ajustandolo al número de decimales que necesito realmente, con esto he solucionado mi problema siempre, eso si, hasta ahora no necesitando trabajar con mas de 12 decimales de precision. Otra solución que he utilzado a veces es reducir la unidad de medida con la que trabajo hasta el punto en el que no necesite utilizar decimales.
Trabajando con monedas hay varias soluciones posibles, pero si trabajas con medidas que necesitan realmente ser almacenadas en un tipo de dato que permita un nivel de precisión de muchos decimales me parece lo mejor utiilzar las soluciones que aplico. Si estoy equivocado o alguien utiliza una solución mejor me encantaria conocerlo ya que a este problema me enfrento habitualmente y siempre suelo hacer lo que he explicado. |
|
#3
|
||||
|
||||
|
La solución es simple, lo ha comentado Al González, no usar float ni double, hay que usar currency, para eso sirve.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
#4
|
||||
|
||||
|
Cita:
gracias muchachos... lo habia olvidado
__________________
Dulce Regalo que Satanas manda para mi..... |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| No imprimir valores en cero | rruffino | Impresión | 6 | 05-07-2012 18:56:59 |
| Valores en cero al exportar a Excel | andresenlared | Impresión | 2 | 24-09-2007 21:32:28 |
| precision en valores float | el_barto | Conexión con bases de datos | 2 | 09-09-2005 06:22:52 |
| SpinEdit con valores Reales (Float) | neon | OOP | 1 | 23-02-2005 12:34:58 |
| resta de dos numeros reales no da cero ... | chelejuan | Varios | 4 | 21-01-2005 09:37:01 |
|