1.13*3 = 3.39
xHarbour arroja que no es igual y algo se esta tragando.
Con valores pares anda bien pero con impares se los come.
Muchas gracias.
In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Desde cuando andara mal esto en xHarbour?
- Carlos Ortiz
- Mensajes: 872
- Registrado: Mié Jul 01, 2009 5:44 pm
- Ubicación: Argentina - Córdoba
- Contactar:
-
- Mensajes: 1831
- Registrado: Mar Oct 11, 2005 9:53 am
Desde cuando andara mal esto en xHarbour?
es por los decimales, redondea a 2 decimas, me paso mucho con facturas en
cero con la comparacion:
If ( nTotal > 0.00 )
tuve que aplicar:
If ( Round(nTotal, 8,2) > 0.00 )
Saludos.
--
Ramón Zea
01.993.231-62-29
http://www.paginasprodigy.com/zeasoftware/
zeasoftware@prodigy.net.mx
zeasoftware@hotmail.com
ramonzea@yahoo.com
zeasoft.movil@hotmail.com
cero con la comparacion:
If ( nTotal > 0.00 )
tuve que aplicar:
If ( Round(nTotal, 8,2) > 0.00 )
Saludos.
--
Ramón Zea
01.993.231-62-29
http://www.paginasprodigy.com/zeasoftware/
zeasoftware@prodigy.net.mx
zeasoftware@hotmail.com
ramonzea@yahoo.com
zeasoft.movil@hotmail.com
Ramón Zea
Móvil: 01-993-231-62-29
ramonzea@yahoo.com
zeasoftware@hotmail.com
zeasoft.movil@hotmail.com
http://www.paginasprodigy.com/zeasoftware/
Móvil: 01-993-231-62-29
ramonzea@yahoo.com
zeasoftware@hotmail.com
zeasoft.movil@hotmail.com
http://www.paginasprodigy.com/zeasoftware/
- Carlos Ortiz
- Mensajes: 872
- Registrado: Mié Jul 01, 2009 5:44 pm
- Ubicación: Argentina - Córdoba
- Contactar:
Desde cuando andara mal esto en xHarbour?
Gracias Ramón, hechamos manos al round, pero que raro que no hayan corregido
ese bug en xHarbour.
Muchas gracias.
"Ramón Zea" <zeasoftware@hotmail.com> escribió en el mensaje
news:[email=4ac684bd@svctag-j7w3v3j....]4ac684bd@svctag-j7w3v3j....[/email]
> es por los decimales, redondea a 2 decimas, me paso mucho con facturas en
> cero con la comparacion:
> If ( nTotal > 0.00 )
>
> tuve que aplicar:
> If ( Round(nTotal, 8,2) > 0.00 )
>
> Saludos.
> --
> Ramón Zea
> 01.993.231-62-29
> http://www.paginasprodigy.com/zeasoftware/
> zeasoftware@prodigy.net.mx
> zeasoftware@hotmail.com
> ramonzea@yahoo.com
> zeasoft.movil@hotmail.com
ese bug en xHarbour.
Muchas gracias.
"Ramón Zea" <zeasoftware@hotmail.com> escribió en el mensaje
news:[email=4ac684bd@svctag-j7w3v3j....]4ac684bd@svctag-j7w3v3j....[/email]
> es por los decimales, redondea a 2 decimas, me paso mucho con facturas en
> cero con la comparacion:
> If ( nTotal > 0.00 )
>
> tuve que aplicar:
> If ( Round(nTotal, 8,2) > 0.00 )
>
> Saludos.
> --
> Ramón Zea
> 01.993.231-62-29
> http://www.paginasprodigy.com/zeasoftware/
> zeasoftware@prodigy.net.mx
> zeasoftware@hotmail.com
> ramonzea@yahoo.com
> zeasoft.movil@hotmail.com
@dbfarma
www.dbfarma.com.ar
www.dbfarma.com.ar
Desde cuando andara mal esto en xHarbour?
Ramón,
esto me ocurre por no leerme TODAS las funciones que dispone Clipper o
xHarbour.
Yo estoy utilizando esta "mezcla"
If ( Val( Str(nTotal,8,2) ) > 0.00 )
pero visto que se puede simplificar echando mano de Round()...
me tocara "limpiar" y dar un repaso a mi código
Un Saludo,
Xevi.
"Ramón Zea" <zeasoftware@hotmail.com> escribió en el mensaje
news:[email=4ac684bd@svctag-j7w3v3j....]4ac684bd@svctag-j7w3v3j....[/email]
> es por los decimales, redondea a 2 decimas, me paso mucho con facturas en
> cero con la comparacion:
> If ( nTotal > 0.00 )
>
> tuve que aplicar:
> If ( Round(nTotal, 8,2) > 0.00 )
>
> Saludos.
> --
> Ramón Zea
> 01.993.231-62-29
> http://www.paginasprodigy.com/zeasoftware/
> zeasoftware@prodigy.net.mx
> zeasoftware@hotmail.com
> ramonzea@yahoo.com
> zeasoft.movil@hotmail.com
esto me ocurre por no leerme TODAS las funciones que dispone Clipper o
xHarbour.
Yo estoy utilizando esta "mezcla"
If ( Val( Str(nTotal,8,2) ) > 0.00 )
pero visto que se puede simplificar echando mano de Round()...
me tocara "limpiar" y dar un repaso a mi código
Un Saludo,
Xevi.
"Ramón Zea" <zeasoftware@hotmail.com> escribió en el mensaje
news:[email=4ac684bd@svctag-j7w3v3j....]4ac684bd@svctag-j7w3v3j....[/email]
> es por los decimales, redondea a 2 decimas, me paso mucho con facturas en
> cero con la comparacion:
> If ( nTotal > 0.00 )
>
> tuve que aplicar:
> If ( Round(nTotal, 8,2) > 0.00 )
>
> Saludos.
> --
> Ramón Zea
> 01.993.231-62-29
> http://www.paginasprodigy.com/zeasoftware/
> zeasoftware@prodigy.net.mx
> zeasoftware@hotmail.com
> ramonzea@yahoo.com
> zeasoft.movil@hotmail.com
-
- Mensajes: 88
- Registrado: Vie Jul 28, 2006 9:36 am
Desde cuando andara mal esto en xHarbour?
Carlos,
> Gracias Ramón, hechamos manos al round, pero que raro que no hayan corregido
> ese bug en xHarbour.
creo que no lo van a arreglar porque no es en realidad un bug, sino un
problema propio de la representación numérica.
Imagínate que haces
a := 1/3; b := 1/6, c:= 1/6;
supuestamente, a - b - c te daría cero, pero prueba de hacerlo en una
calculadora de mano y verás que en la mayoria nos dará un 0.000000000001
o algo así. Si usásemos un sistema base 3, no tendríamos ningún error.
Ese mismo problema de representación lo padece el formato que utiliza C
y la mayoría de los lenguajes para representar números, ya que el
formato DOUBLE de 8 bytes es uno de los formatos numéricos de las
funciones matemáticas de los procesadores.
En la oficina nos hicimos nuestro propio Round2() con una funcion como
la que usa Xevi.
FUNCTION Round2( nVal ); RETURN Val(Str(nVal, 2))
Con eso hemos resuelto la mayoría de los problemas.
Un saludo,
Carlos.
> Gracias Ramón, hechamos manos al round, pero que raro que no hayan corregido
> ese bug en xHarbour.
creo que no lo van a arreglar porque no es en realidad un bug, sino un
problema propio de la representación numérica.
Imagínate que haces
a := 1/3; b := 1/6, c:= 1/6;
supuestamente, a - b - c te daría cero, pero prueba de hacerlo en una
calculadora de mano y verás que en la mayoria nos dará un 0.000000000001
o algo así. Si usásemos un sistema base 3, no tendríamos ningún error.
Ese mismo problema de representación lo padece el formato que utiliza C
y la mayoría de los lenguajes para representar números, ya que el
formato DOUBLE de 8 bytes es uno de los formatos numéricos de las
funciones matemáticas de los procesadores.
En la oficina nos hicimos nuestro propio Round2() con una funcion como
la que usa Xevi.
FUNCTION Round2( nVal ); RETURN Val(Str(nVal, 2))
Con eso hemos resuelto la mayoría de los problemas.
Un saludo,
Carlos.