problema extraño con get

problema extraño con get

Postby MOISES » Wed Nov 21, 2007 8:09 pm

Hola:

Tengo un comportamiento muy extraño con get: cuando le metes el número 208605040000027483 lo redondea y lo convierte en 208605040000027500 al darle al TAB o al OK, y no sé por qué razón, pues yo no quiero nada de eso.

¿Alguien sabe por qué? Muchas gracias.

El código es:

// Testing GETs

#include "FiveWin.ch"

function Main()
LOCAL oDlg, oGet
LOCAL cCad := "Testing " // pad("Testing Gets",40)
LOCAL nNum := 0
LOCAL dDat := Date()

Set century On
Set Date Ansi
Set Date format "mm/dd/yyyy"

SET _3DLOOK ON

DEFINE DIALOG oDlg TITLE "TGet from " + FWDESCRIPTION

@ 1.8, 2 SAY "Number:" OF oDlg
@ 2, 6 GET oGet VAR nNum OF oDlg SIZE 80, 10 PICTURE "99999999999999999999999999"


@ 3, 7 BUTTON "&Ok" OF oDlg SIZE 30, 12 ACTION oDlg:End()
@ 3, 16 BUTTON "&Cancel" SIZE 30, 12 OF oDlg ACTION oDlg:End() CANCEL


ACTIVATE DIALOG oDlg CENTERED

return nil

//------------------------------------------------------------------------//
MOISES
 
Posts: 838
Joined: Wed Aug 22, 2007 10:09 am

Postby QAZWSX2K » Wed Nov 21, 2007 8:13 pm

creo no estoy seguro si se me salen los años que la longitud maxima en clipper de un numero son de 16 digitos, de hecho agarras un nuymero y lo conviertes a string y te da los 16 espacios, de todos modos no me creas mucho porque no estoy muy seguro
Software especializado para oficinas contables con grandes volumenes de Informacion
Impresion de todos los formularios del Seniat, Dian

alex_patino74@hotmail.com
whatsapp 57+3214777217
User avatar
QAZWSX2K
 
Posts: 364
Joined: Tue Oct 25, 2005 7:06 pm
Location: Bogota - Caracas

Postby MOISES » Thu Nov 22, 2007 10:15 am

Con números mayores funciona sin problemas. Lo que sucede es que algunas combinaciones numéricas, como la que he adjuntado, producen ese extrañísimo comportamiento.
MOISES
 
Posts: 838
Joined: Wed Aug 22, 2007 10:09 am

Postby Carlos Mora » Thu Nov 22, 2007 2:40 pm

Moises,

el comportamiento no es para nada extraño, es el esperado. El tipo numérico en Clipper/Harbour puede ser LONG o DOUBLE, segun sea el valor almacenado.
LONG tiene un rango de valores de -2147483648 al 2147483647.
http://es.wikipedia.org/wiki/Tipo_de_dato_entero

Superados los límites del LONG, el número se almacena como DOUBLE con las limitaciones del caso: Valor absoluto de 5.0 x 10^–324 a 1.7 x 10^308, con 15 o 16 dígitos significativos. En tu caso superas esos dígitos significativos, por lo que no puede representar los últimos de manera exacta y tiene el comportamiento que tu comentas.

http://es.wikipedia.org/wiki/Double

Un saludo,

Carlos.[/b]
Carlos Mora
 
Posts: 989
Joined: Thu Nov 24, 2005 3:01 pm
Location: Madrid, España

Postby MOISES » Thu Nov 22, 2007 3:46 pm

Carlos:

Muchas gracias por tu respuesta. La verdad, siempre tan atinado y experto en tus aportes al foro ;). Supongo que no podré hacer nada por arreglarlo, verdad?

Otra cosilla, ¿dónde puedo encontrar información del MIDAS- generador de informes?. Creo que es de Binguen, verdad?.

Muchas gracias por todo.

Un saludo
MOISES
 
Posts: 838
Joined: Wed Aug 22, 2007 10:09 am

Postby Carlos Mora » Fri Nov 23, 2007 9:07 am

Hola Moises,

Con el tema del formato NUMERIC no hay mucho para hacer, no al menos de forma sencilla. Las soluciones que se me ocurren son un poco complejas y creo que no ameritan.

Respecto del MIDAS, Bingen prometió publicarlo pero aún no ha podido, está como todos, liado con el trabajo. Cualquier novedad paso el aviso.

Un saludo,

Carlos.
Carlos Mora
 
Posts: 989
Joined: Thu Nov 24, 2005 3:01 pm
Location: Madrid, España

Postby MOISES » Fri Nov 23, 2007 11:06 am

Muchas gracias, Carlos.

Por cierto, ¿me podrías, por favor, indicar el email de Binguen a ?. La web de muniser no funciona.

Un saludo
MOISES
 
Posts: 838
Joined: Wed Aug 22, 2007 10:09 am


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: gmart1, Google [Bot] and 71 guests