Como dejar los dos decimales de una variable numerica

Consultas, trucos, consejos. Todo sobre Clarion en todas sus versiones
Responder
ooap99
Novato
Mensajes: 26
Registrado: Mié Oct 19, 2011 9:46 pm
Contactar:

Como dejar los dos decimales de una variable numerica

Mensaje por ooap99 » Sab Ene 27, 2018 3:54 am

Hola buenas noches y feliz año nuevo 2018.

variable= 200.50 Tengo esta variable que es numerica de 10 con 2 decimales.
La idea es quitarle los espacios en blanco lo realizo de la siguiente manera:
Clip(variable)
El resultado es el siguiente:
200.5 Me quita los espacios pero también me quita el cero del lado derecho de las decimales.

La pregunta es como puedo hacerle para que me quite los espacios en blanco de la variable numérica pero me deje los dos decimales.
200.50

Saludos y gracias por su apoyo.


HDMadeira
Al nivel de RZ
Mensajes: 306
Registrado: Dom Feb 06, 2011 10:02 pm
Ubicación: Trelew, Chubut, Argentina
Contactar:

Re: Como dejar los dos decimales de una variable numerica

Mensaje por HDMadeira » Sab Ene 27, 2018 7:53 pm

Hola, proba

variable_string= format(variable,@n9.2)

saludos

Daniel

ooap99
Novato
Mensajes: 26
Registrado: Mié Oct 19, 2011 9:46 pm
Contactar:

Re: Como dejar los dos decimales de una variable numerica

Mensaje por ooap99 » Sab Ene 27, 2018 11:27 pm

Hola daniel gracias por contestar.

E punto es que si utilizo esta instrucción.
variable_string= format(variable,@n9.2)
El resultado seria:
XXX200.50

Y la idea es quitarle los 3 espacios del lado izquierdo (XXX). Porque en total son 9 espacios con todo y los 2 decimales.

XXX200.50
123456789

Si le quito los 3 espacios del lado izquierdo(XXX) el 1,2,3 quedaría de la siguiente manera, así es como quiero que quede. Justificado del lado izquierdo y sin espacios del lado derecho.
200.50

Saludos y gracias por tu apoyo.

HDMadeira
Al nivel de RZ
Mensajes: 306
Registrado: Dom Feb 06, 2011 10:02 pm
Ubicación: Trelew, Chubut, Argentina
Contactar:

Re: Como dejar los dos decimales de una variable numerica

Mensaje por HDMadeira » Dom Ene 28, 2018 2:18 pm

Hola, proba
variable_string= LEFT(format(variable,@n9.2))

Saludos

Daniel

ooap99
Novato
Mensajes: 26
Registrado: Mié Oct 19, 2011 9:46 pm
Contactar:

Re: Como dejar los dos decimales de una variable numerica

Mensaje por ooap99 » Lun Ene 29, 2018 3:14 pm

Hola daniel buenos días.
variable_string= LEFT(format(variable,@n9.2))

Esta función me quita los espacios del lado izquierdo, pero me los pone del lado derecho.
El resultado seria:

200.50XXX

Ya le intente tambien de la siguiente manera.
variable_string= CLIP(format(variable,@n9.2))
variable_string= LEFT(format(variable,@n9.2))
Y no logro quitar los espacios del lado izquierdo en blanco.

Y la idea es que me quite los espacios del lado izquierod(XXX)
XXX200.50

Y quede de la siguiente manera:
200.50

Saludos y gracias por tu apoyo.

HDMadeira
Al nivel de RZ
Mensajes: 306
Registrado: Dom Feb 06, 2011 10:02 pm
Ubicación: Trelew, Chubut, Argentina
Contactar:

Re: Como dejar los dos decimales de una variable numerica

Mensaje por HDMadeira » Mar Ene 30, 2018 1:00 am

Hola, será porque la variable es string en vez de cstring ?

Saludos

Daniel

HDMadeira
Al nivel de RZ
Mensajes: 306
Registrado: Dom Feb 06, 2011 10:02 pm
Ubicación: Trelew, Chubut, Argentina
Contactar:

Re: Como dejar los dos decimales de una variable numerica

Mensaje por HDMadeira » Mar Ene 30, 2018 1:25 am

Hola, probe lo siguiente
cree las variables

"variable" como decimal @9.2
"strings" como string de 20 caracteres
"stringc" como cstring de 21 caracteres

luego en el accepted de un botón puse lo siguiente

variable=123.50
strings='+'& left(format(variable,@n6.2)) & '+'
stringc='+'& left(format(variable,@n6.2)) & '+'

stop(strings)
stop(stringc)

el resultado de los dos stops es el mismo +123.50+
es decir sin espacio antes ni despues del numero...
sera problema del picture que elegiste en el control donde mostras el resultado ?

Saludos

Daniel

ooap99
Novato
Mensajes: 26
Registrado: Mié Oct 19, 2011 9:46 pm
Contactar:

Re: Como dejar los dos decimales de una variable numerica

Mensaje por ooap99 » Mar Mar 06, 2018 10:12 pm

!Una disculpa, por no poner el código a tiempo, lo resolví de la siguiente manera. Saludos.
Loc:totalp !variable tipo decimal @n-14.2
Loc:posicion ! variable tipo short @n-2
!Codigo
Loc:posicion=0
Str = Format(Loc:totalp,@n10.2) !' 2500.80' ! String con el texto
Str = Left(Str) ! Justificar texto a la izquierda para evitar "posibles" espacios iniciales
P# = Instring('.',Str) ! Obtener la posición del punto de decimal del importe
Loc:posicion=Str[P#+1]&Str[P#+2]
!MESSAGE(Loc:posicion)
If Loc:posicion=10 or Loc:posicion=20 or Loc:posicion=30 or Loc:posicion=40 or Loc:posicion=50 or Loc:posicion=60 or Loc:posicion=70 or Loc:posicion=80 or
Loc:posicion=90
Clear(Nom:c1)
Nom:c1 = ' SubTotal : "'&Clip(Loc:totalp)&'0'&'"'
ADD(nomitxt)
Else
If Loc:posicion=00
Clear(Nom:c1)
Nom:c1 = ' SubTotal : "'&Clip(Loc:totalp)&'.00'&'"'
ADD(nomitxt)
Else
Clear(Nom:c1)
Nom:c1 = ' SubTotal : "'&Clip(Loc:totalp)&'"'
ADD(nomitxt)
End
End

Gracias por su apoyo. Dios los bendiga hoy y siempre.


Responder

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 37 invitados