FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Char to numeric
Posts: 1283
Joined: Fri Feb 10, 2006 02:34 PM
Char to numeric
Posted: Mon Nov 03, 2008 10:04 AM

Hola,

Teneis alguna rutina de conversion de caracter a numerico para este formato ?

1.0000000000000000E+03NUM
5.2050000000000000E+02NUM
...

Gracias

Salutacions, saludos, regards

"...programar es fácil, hacer programas es difícil..."

UT Page -> https://carles9000.github.io/
Forum UT -> https://discord.gg/bq8a9yGMWh
HIX -> https://github.com/carles9000/hix
Posts: 989
Joined: Thu Nov 24, 2005 03:01 PM
Char to numeric
Posted: Tue Nov 04, 2008 02:46 PM

Hola Carles,

esa es, si no me equivoco, notacion científica.

5.2050000000000000E+02NUM puede traducirse como
5.205 x 10 ^ 2 = 5.205 x 100 = 520.5

la E puede traducirse como x 10 ^

entonces num = Val( left( string, pos( string, 'E' )-1) ) x 10 ^ Val( substr( string, pos( string, 'E' ) + 1 )

ojo que el exponente tambien puede ser negativo, o sea

1.0000000000000E-02NUM puede traducirse como
1.0000 x 10 ^ -2 = 1.0000 x 0.01 = 0.01

Un saludo,

Carlos.

PD: ¿Cuando hacemos la segunda reunión?

Saludos
Carlos Mora
http://harbouradvisor.blogspot.com/
StackOverflow http://stackoverflow.com/users/549761/carlos-mora
“If you think education is expensive, try ignorance"
Posts: 1283
Joined: Fri Feb 10, 2006 02:34 PM
Char to numeric
Posted: Tue Nov 04, 2008 02:52 PM
Carlos,

Gracias, lo voy a probar.

PD: ¿Cuando hacemos la segunda reunión?


Jejeje, yo ya la haria mañana mismo, peroooo ya ves q o lo hacemos con un recalenton o no va... :-) Espero, nos podamos reunir pronto

Saludotes.
Salutacions, saludos, regards

"...programar es fácil, hacer programas es difícil..."

UT Page -> https://carles9000.github.io/
Forum UT -> https://discord.gg/bq8a9yGMWh
HIX -> https://github.com/carles9000/hix
Posts: 989
Joined: Thu Nov 24, 2005 03:01 PM
Char to numeric
Posted: Tue Nov 04, 2008 03:16 PM
Carles wrote:
Jejeje, yo ya la haria mañana mismo, peroooo ya ves q o lo hacemos con un recalenton o no va... :-)

La verdad, si no es un arranque de furia no funciona :-)
Ya se me está poniendo viejo el tema que tenía preparado...
A ver si reactivamos el tema.

Un abrazo,

Carlos.
Saludos
Carlos Mora
http://harbouradvisor.blogspot.com/
StackOverflow http://stackoverflow.com/users/549761/carlos-mora
“If you think education is expensive, try ignorance"
Posts: 1283
Joined: Fri Feb 10, 2006 02:34 PM
Char to numeric
Posted: Wed Nov 05, 2008 06:56 AM

Carlos,

Ya puestos... La operacion inversa como la harias, es decir:

520.5 -> Pasarlo a 5.2050000000000000E+02NUM

Gracias

Salutacions, saludos, regards

"...programar es fácil, hacer programas es difícil..."

UT Page -> https://carles9000.github.io/
Forum UT -> https://discord.gg/bq8a9yGMWh
HIX -> https://github.com/carles9000/hix
Posts: 989
Joined: Thu Nov 24, 2005 03:01 PM
Char to numeric
Posted: Wed Nov 05, 2008 07:21 AM

Ahí habría que ser más preciso con las especificaciones de la representación. Normalmente te viene dada la cantidad de dígitos tanto del exponente como de la mantisa. En ciencias la mantisa tiene 1 entero, pero en informática está entre 0 y 1

Deduciendo lo que escribiste, aparentemente la representación que usas es una mantisa > 1 y < 10, con 2 dígios de exponente con signo. No se vé previsión para el signo de la mantisa, y el prefijo NUM no sé que significado puede tener, pero no tiene una aplicación general, debe ser algo específico a tu aplicación.

Num2Sci( nNumero )
nExp:= 0
nMantisa:= nNumero

While Abs( nMantisa ) > 10
nExp ++
nMantisa /= 10
EndDo

While Abs( nMantisa ) < 1
nExp --
nMantisa *= 10
EndDo

Return StrTran( Str( nMantisa, 12, 10 ) + 'E' +Str(nExp,3), ' ', '+' )

Lo del return lo ajustas a las especificaciones que te den, igual que añadirle el 'NUM' al final.

http://es.wikipedia.org/wiki/Notaci%C3% ... %C3%ADfica

un saludo,

Carlos

Saludos
Carlos Mora
http://harbouradvisor.blogspot.com/
StackOverflow http://stackoverflow.com/users/549761/carlos-mora
“If you think education is expensive, try ignorance"
Posts: 1283
Joined: Fri Feb 10, 2006 02:34 PM
Char to numeric
Posted: Wed Nov 05, 2008 07:59 AM

Carlos,

Carai colega. La explicacion vale una cervecita la próxima.

Saludotes.
C.

Salutacions, saludos, regards

"...programar es fácil, hacer programas es difícil..."

UT Page -> https://carles9000.github.io/
Forum UT -> https://discord.gg/bq8a9yGMWh
HIX -> https://github.com/carles9000/hix

Continue the discussion