SET variable local y decimales

vForum público de la plataforma de desarrollo Velneo

Moderador: vCoaches

Responder
Avatar de Usuario
juanito
vAdviser
vAdviser
Mensajes: 306
Registrado: 05 Dic 2005, 15:32
Ubicación: Madrid - España

SET variable local y decimales

Mensaje por juanito » 25 Ago 2008, 11:16

Buenos dias

Mediante un set asigno, a una variable local, el valor de un campo formula numerica con dos decimales.

La variable aparentemente toma el valor correcto, pero si el segundo decimal es 0 la variable solo toma la parte entera

Sirva de ejemplo

campo formula
numerica (2 decimales) variable local
---------------------------- --------------------
125,55 125,55
125,50 125

Alguien sabe el por que, y sobre todo como evitarlo?, necesito presentar el valor del campo formula numerica en un pedir dato

Gracias

Juanito

Avatar de Usuario
Indexneo
vMate
vMate
Mensajes: 93
Registrado: 04 Ene 2008, 19:22

Mensaje por Indexneo » 25 Ago 2008, 11:34

Me parece tu problema es el simbolo utilizado. Prueba a utilizar el Punto (.) para los valores decimales.

un saludo
IndeXneo Solutions S.L.
-------------------------------------

Avatar de Usuario
juanito
vAdviser
vAdviser
Mensajes: 306
Registrado: 05 Dic 2005, 15:32
Ubicación: Madrid - España

Mensaje por juanito » 25 Ago 2008, 11:54

Los valores se meten en ejecucion por el teclado numerico en sus EDITs correspondientes, y el campo formula numerica recoge la suma de esos valores

Despues por porceso, mediante un SET asigno a la variable local, el valor del campo formula numerica

En un pedir dato muestro ese valor, y es donde surge el problema, si el campo vale 125.430,12 muestra 125430,12, pero si vale 125.430,10 muestra 125430 sin considerar el decimal

HBarros
vAdviser
vAdviser
Mensajes: 746
Registrado: 14 Feb 2006, 17:48
Ubicación: Vigo

Mensaje por HBarros » 25 Ago 2008, 12:02

Puede ser que estés haciendo redondeo?. Si es así, tiene sentido que te redondee en función de los decimales de redondeo que tengas.

Un saludo

HBarros
vAdviser
vAdviser
Mensajes: 746
Registrado: 14 Feb 2006, 17:48
Ubicación: Vigo

Mensaje por HBarros » 25 Ago 2008, 12:05

Me retracto, me estaba fijando bien en el enunciado de tu pregunta y veo que tienes 2 decimales, lo cual no tiene mucho sentido lo que te he respondido. :wink:

De todos modos puedes probar a utilizar 5 decimales en tu redondeo y obligar en el proceso a la variable local a redondear a 5 decimales, despues modifica los decimales en el campo de la tabla y a ver si te resuelve el problema

Un saludo

Avatar de Usuario
joaquinh
vRookie
vRookie
Mensajes: 24
Registrado: 13 Jun 2008, 08:07
Ubicación: Oviedo - Asturias
Contactar:

Mensaje por joaquinh » 25 Ago 2008, 12:07

Buenos días

cosa extraña, yo probaría a sustituir el punto por "" y la coma por el punto.

Saludos
Joaquín Huergo
Axos Soluciones Visuales
Software Gestión almacén

Web: http://www.axosvisual.com

Avatar de Usuario
juanito
vAdviser
vAdviser
Mensajes: 306
Registrado: 05 Dic 2005, 15:32
Ubicación: Madrid - España

Mensaje por juanito » 25 Ago 2008, 12:31

En la formula numerica no hay redondeo, y en el SET tampoco.
No debe ser cuestion del punto o la coma, pues cuando la centesima del campo es distinta de 0 si lo muestra bien. y tanto derecho tienen 50 centesimas como 49 centesimas

el proceso es tan sencillo como:

Set-> variablelocal, %campo%
Pedir dato-> ¿Indique el importe?, variablelocal, Numero, bOK

Avatar de Usuario
Mgalvezh
vAdviser
vAdviser
Mensajes: 766
Registrado: 13 Sep 2007, 16:36
Ubicación: S/C. de Tenerife

Mensaje por Mgalvezh » 25 Ago 2008, 14:04

Hola.
Preocupante, creo que el pedir dato numérico con decimales, no funciona, probar esto en un proceso sin origen:

set a, 6.50
mensaje a ------------------------------------>6.50
pedir dato, a, numero------------------------>6 ¿?¿?¿?¿?
mensaje a ---------------------
si pulsamos cancelar ----------------------->6,50
si pulsamos aceptar ------------------------>6 ?¿?¿?¿?¿

pero si el número es 6.55 todo ok. :roll:

Avatar de Usuario
Indexneo
vMate
vMate
Mensajes: 93
Registrado: 04 Ene 2008, 19:22

Mensaje por Indexneo » 25 Ago 2008, 15:17

No lo he probado, pues siempre trato de evitar las instrucciones como "Pedir dato", pero si no te queda mas remedio, puedes pedir una cadena alfabetica y obtener su valor numérico.

Personalmente, cambiaria el planteamiento para que la entrada de datos fuera requerida desde un formulario con edición de campos de una tabla.

un saludo
IndeXneo Solutions S.L.
-------------------------------------

Avatar de Usuario
juanito
vAdviser
vAdviser
Mensajes: 306
Registrado: 05 Dic 2005, 15:32
Ubicación: Madrid - España

Mensaje por juanito » 25 Ago 2008, 18:58

Cambiare el planteamiento para este caso, pero el problema siempre persistira.

No es raro que en un proceso des valor a una variable local y si no estas seguro que lo recibe correctamente apaga y vamonos

Juanito

Responder