FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Es porqué trabajas con variables de coma flotante (float o reals). Para evitar estos problemas de redondeo, se debe usar siempre variables de tipo Currency (que es coma fija).
|
#2
|
||||
|
||||
No solamente variables, obviamente, los campos de la base de datos también.
|
#3
|
||||
|
||||
woW
A eso iba exactamente mi siguiente duda, ya que en MySQL me ocurria lo mismo. Ya estuve leyendo un poco y veo que para MySQL se debe especificar la columna como DECIMAL(M,D) pero me confunde un poco los parametros.
Para moneda cual seria la precision recomendada?? Por ahora estoy utilizando DECIMAL(4,2) Gracias nuevamente, aprecio mucho su ayuda |
#4
|
||||
|
||||
Un poco de off-topic y de SPAM: Hace un tiempo escribí un artículo titulado El Valor de un Céntimo, que está relacionado con el tema del manejo de valores fraccionarios en computadoras digitales. Seguro que te clarifica las cosas.
|
#5
|
||||
|
||||
Hola,
Lecturas obligadas: 1. What Every Computer Scientist Should Know About Floating-Point Arithmetic 2. Comparing floating point numbers 3. Floating point numbers Creo que con ello uno ya se hace la idea. Saludos, PD: A quien no le guste el inglés como a mi, ármese de valor. |
#6
|
||||
|
||||
Cita:
|
#7
|
||||
|
||||
Es mas de lo que pensé
Ok, Ahora tengo mucha tarea :S
Gracias por los valiosos consejos. Y le entraré con valor al inglés aunque no me gusta. |
#8
|
||||
|
||||
Inteligente truco
Cita:
Cita:
Muchas gracias, excelente aporte |
#9
|
||||
|
||||
Cita:
Verás, primero tenemos una tabla denominada divisa, más o menos así: Ahora imaginemos que nuestra moneda principal serán los euros. En principio podríamos ponerle el valor "1", pero tiene céntimos así que sería más lógico que fuera "100". Sin embargo hay divisas cuyo valor es inferior al céntimo de euro (como la antigua peseta, por ejemplo) así que le damos el valor "10.000". Pues damos de alta a la divisa: Ahora metemos dólares. Primero, tenemos que saber cuántos euros es un dólar, que según Google, cuando escribo esto es 1U$ = 0'707063565€. Multiplicamos por el valor del euro, esto es, por 10.000, y nos sale 7.071: Ahora vamos a por los productos: Como ves, el precio es un entero. Para introducir el precio, pues sólo tenemos que multiplicarlo por el valor de la divisa en la que hayamos introducido el precio: Y ya está. Ahora todos los cálculos los hacemos con enteros, pero cuando mostremos el precio tenemos que dividir por el valor de la divisa y nos dará el precio. Por ejemplo, nuestra chocolatina: Código:
En euros: 12.000 / 10.000 = 1'20€ En dólares: 12.000 / 7.071 = 1'68U$ Espero que haya quedado más claro. Última edición por Ñuño Martínez fecha: 17-05-2011 a las 10:12:08. |
#10
|
||||
|
||||
Podria marcar una tendencia
Hola de nuevo Ñuño.
Gracias por tomarte el tiempo y la molestia para esta excelente explicación. Ahora estoy evaluando de que manera puedo implementarlo al proyecto, aunque ahora es un poco complicado ya que habria que cambiar la estructura de la BD. Pero creo que el cambio bien valdría la pena. Espero que pronto algunos mas de nuestros expertos comenten y enriquescan tu aporte, yo creo que incluso podría incluirse a la sección de Trucos. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
ayuda con mi tarea no entiendo!! | chairez0490 | Varios | 3 | 16-12-2009 04:20:58 |
Cable de red que no lo entiendo | Petolansa | Redes | 2 | 21-04-2009 14:55:33 |
no entiendo Intraweb | davidvamo | Internet | 15 | 24-04-2008 05:34:16 |
No lo entiendo | ramonibk | MS SQL Server | 11 | 20-05-2004 20:23:20 |
No entiendo | rastafarey | Firebird e Interbase | 1 | 03-12-2003 17:14:30 |
|