Power Builder - Como pasar un Valor String a Decimal

 
Vista:

Como pasar un Valor String a Decimal

Publicado por Felipe (3 intervenciones) el 15/02/2011 21:10:42
Estimados tengo el siguiente problema, necesito pasar un valor que está contenido en un data Windows Externa, la cual tiene 2 campos String con un largo de 12, esto traen los siguientes valores, ambos son valores enteros con 2 decimales, pero a uno le saque a propósito el punto y el otro quedo con el punto que separa a los decimales.
Campo_1 = 240001 si lo vemos escrito correctamnte seria 24,000.01
Campo_2 = 2400.01
El problema es que necesito que estos campos se almacenen en otra base, cuyo campo es
Tipo Tamaño Decimales
Decimal 19 4
Pero al grabarlo en la base queda almacenado de la siguiente manera 240001.0000
Cuando debería quedar grabado correctamente de la siguiente manera 2400.01
He intentado de todas las maneras posibles realizar la modificación con ambos campos, pero me es imposible dejarlos como yo los necesito
He realizado lo siguiente
Variable _decimal = Dec(dw_.getitemStringi,campo_1)
Variable _decimal2 = Dec(dw_.getitemStringi,campo_2)
Atento a sus comentarios
Felipe
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 37
Ha mantenido su posición en Power Builder (en relación al último mes)
Gráfica de Power Builder

RE:Como pasar un Valor String a Decimal

Publicado por JeinnerH (646 intervenciones) el 16/02/2011 00:09:07
Mmm....

Debiera estar realizando bien el almacenamiento de la información con lo que haces. Si se te está almacenando un monto en la BD.

Esó sí, el campo texto, debe tener el punto decimal en el lugar correcto y estár libre de comas. Revisa en tu máquina los Regional Settings, la configuración del punto para números y moneda. Deben coincidir con lo que estás utilizando en el campo de texto.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Como pasar un Valor String a Decimal

Publicado por Luis (47 intervenciones) el 16/02/2011 10:03:55
Hola,

Es muy importante lo que te comenta JeinnerH, sobre que en la configuración regional de Windows tengas como símbolo de millar la coma y de decimal el punto, luego, si formateas el campo, debería grabarlo bien.

algo así:

Variable _decimal2 = Dec(String(dw_.getitemString(dw_.GetRow(),campo_2),'###,###,###,###,###.##')
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Como pasar un Valor String a Decimal

Publicado por Julio Cesar (86 intervenciones) el 16/02/2011 16:31:21
Estimado Felipe,
Lo que comentas las 2 personas anteriormente es muy factible, pero nunca esta demas modificar el punto que trae el campo_2 por una coma, es decir el valor ahora deberia quedar de la siguiente manera 2400,01
lo que debes hacer es lo siguiente

Asignar el valor de d_w a un campo String

String formando_coma
Long vl_esta

//Esto dentro de do while
formando_coma = dw.getitemString(1,"campo_2")
// Buscas la posicion del punto
vl_esta = Pos(formando_coma,".")
// Ahora reemplazas el punto por la coma
formando_coma = Replace(formando_coma,vl_esta,1,",")

// Listo Amigo, espero te sirva

Julio Cesar
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Como pasar un Valor String a Decimal

Publicado por Felipe (3 intervenciones) el 16/02/2011 17:24:14
Estimado Julio Cesar

Realice las opciones que me compartiste, y resulto bien,
Muchas gracias por tu cooperación

Felipe
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar