Funcion VAL

22/09/2004 - 22:54 por Wilmer | Informe spam
Quisiera saber si la funcion VAL redondea una cifra con
decimales.
Gracias por la ayuda

Preguntas similare

Leer las respuestas

#1 Luis María Guayán
22/09/2004 - 23:10 | Informe spam
La función VAL no redondea, pero convierte a valor numérico una cadena de
caracteres que contiene números hasta 16 caracteres, si es mayor a 16
carcateres SI redondea.

? VAL("125235874878457827")

Tener en cuenta que VAL() convierte los caracteres de izquierda a derecha,
hasta la aparición de un caracter no numérico. Según que tengas configurado
como caracter de punto decimal, puede ser el caso de que te redondea a un
valor entero, como el siguiente ejemplo:

? VAL("712.52")
? VAL("712,52")

Luis María Guayán
Tucumán, Argentina
________________________________
SysOp de www.PortalFox.com
Microsoft Visual FoxPro MVP
________________________________
La palabra imposible solo figura
en el diccionario de los tontos


"Wilmer" escribió en el mensaje
news:04a201c4a0e6$6c9e6a60$
Quisiera saber si la funcion VAL redondea una cifra con
decimales.
Gracias por la ayuda
Respuesta Responder a este mensaje
#2 Pedro José Hernández Muñoz
26/09/2004 - 12:32 | Informe spam
Hola
No estoy de acuerdo ...

SET DECIMALS TO 1
? VAL("123,95") && Muestra 124,0


Pedro José Hernández Muñoz

blog: http://pedrohdz.blogspot.com/
atom: http://pedrohdz.blogspot.com/atom.xml
"Luis María Guayán" escribió en el mensaje
news:%
La función VAL no redondea, pero convierte a valor numérico una cadena de
caracteres que contiene números hasta 16 caracteres, si es mayor a 16
carcateres SI redondea.

? VAL("125235874878457827")

Tener en cuenta que VAL() convierte los caracteres de izquierda a derecha,
hasta la aparición de un caracter no numérico. Según que tengas


configurado
como caracter de punto decimal, puede ser el caso de que te redondea a un
valor entero, como el siguiente ejemplo:

? VAL("712.52")
? VAL("712,52")

Luis María Guayán
Tucumán, Argentina
________________________________
SysOp de www.PortalFox.com
Microsoft Visual FoxPro MVP
________________________________
La palabra imposible solo figura
en el diccionario de los tontos


"Wilmer" escribió en el mensaje
news:04a201c4a0e6$6c9e6a60$
> Quisiera saber si la funcion VAL redondea una cifra con
> decimales.
> Gracias por la ayuda


Respuesta Responder a este mensaje
#3 Luis María Guayán
26/09/2004 - 20:43 | Informe spam
Pedro, SET DECIMAL TO especifica el numero de decimales que se _mostrará_, no
afectando el número almacenado, como por ejemplo la variable "ln" del siguiente
código:

SET FIXED ON
SET DECIMALS TO 1
ln = VAL("123,95")
? ln
SET DECIMALS TO 4
? ln

La función VAL no redondea numeros de hasta 16 caracteres.

Luis María Guayán
Tucumán, Argentina
________________________________
SysOp de www.PortalFox.com
Microsoft Visual FoxPro MVP
________________________________
La palabra imposible solo figura
en el diccionario de los tontos


"Pedro José Hernández Muñoz" escribió en el
mensaje news:
Hola
No estoy de acuerdo ...

SET DECIMALS TO 1
? VAL("123,95") && Muestra 124,0


Pedro José Hernández Muñoz

blog: http://pedrohdz.blogspot.com/
atom: http://pedrohdz.blogspot.com/atom.xml
"Luis María Guayán" escribió en el mensaje
news:%
La función VAL no redondea, pero convierte a valor numérico una cadena de
caracteres que contiene números hasta 16 caracteres, si es mayor a 16
carcateres SI redondea.

? VAL("125235874878457827")

Tener en cuenta que VAL() convierte los caracteres de izquierda a derecha,
hasta la aparición de un caracter no numérico. Según que tengas


configurado
como caracter de punto decimal, puede ser el caso de que te redondea a un
valor entero, como el siguiente ejemplo:

? VAL("712.52")
? VAL("712,52")

Luis María Guayán
Tucumán, Argentina
________________________________
SysOp de www.PortalFox.com
Microsoft Visual FoxPro MVP
________________________________
La palabra imposible solo figura
en el diccionario de los tontos


"Wilmer" escribió en el mensaje
news:04a201c4a0e6$6c9e6a60$
> Quisiera saber si la funcion VAL redondea una cifra con
> decimales.
> Gracias por la ayuda






Respuesta Responder a este mensaje
#4 Luis María Guayán
26/09/2004 - 22:08 | Informe spam
Pedro, SET DECIMAL TO especifica el numero de decimales que se _mostrará_, no
afectando el número almacenado, como por ejemplo la variable "ln" del siguiente
código:

SET FIXED ON
SET DECIMALS TO 1
ln = VAL("123,95")
? ln
SET DECIMALS TO 4
? ln

La función VAL no redondea numeros de hasta 16 caracteres.

Luis María Guayán
Tucumán, Argentina
________________________________
SysOp de www.PortalFox.com
Microsoft Visual FoxPro MVP
________________________________
La palabra imposible solo figura
en el diccionario de los tontos


"Pedro José Hernández Muñoz" escribió en el
mensaje news:
Hola
No estoy de acuerdo ...

SET DECIMALS TO 1
? VAL("123,95") && Muestra 124,0


Pedro José Hernández Muñoz

blog: http://pedrohdz.blogspot.com/
atom: http://pedrohdz.blogspot.com/atom.xml
"Luis María Guayán" escribió en el mensaje
news:%
La función VAL no redondea, pero convierte a valor numérico una cadena de
caracteres que contiene números hasta 16 caracteres, si es mayor a 16
carcateres SI redondea.

? VAL("125235874878457827")

Tener en cuenta que VAL() convierte los caracteres de izquierda a derecha,
hasta la aparición de un caracter no numérico. Según que tengas


configurado
como caracter de punto decimal, puede ser el caso de que te redondea a un
valor entero, como el siguiente ejemplo:

? VAL("712.52")
? VAL("712,52")

Luis María Guayán
Tucumán, Argentina
________________________________
SysOp de www.PortalFox.com
Microsoft Visual FoxPro MVP
________________________________
La palabra imposible solo figura
en el diccionario de los tontos


"Wilmer" escribió en el mensaje
news:04a201c4a0e6$6c9e6a60$
> Quisiera saber si la funcion VAL redondea una cifra con
> decimales.
> Gracias por la ayuda






Respuesta Responder a este mensaje
#5 Pedro José Hernández Muñoz
27/09/2004 - 03:18 | Informe spam
Hola

Estamos de acuerdo en que SET DECIMALS sólo influye en la visualización,
pero, al crear una variable pública y utilizar esta misma en un
controlsource de un cuadro de texto, sigue haciendo el redondeo ... , en
todo lo demas de acuerdo contigo.
Por ejemplo, este código funciona bien:

PUBLIC oForm as Form


PUBLIC nVal
SET DECIMALS TO 1
nVal=VAL("123,95")

oForm = CREATEOBJECT("form")
oform.AddObject("Text1","textbox")
oform.AddObject("Text2","textbox")
oform.Text1.ControlSource = "nVal"
oform.text1.visible = .t.
oform.text2.visible = .t.
oform.text2.top = 30
oform.text2.value = oform.text1.value + 0.01 && 123,96
oform.Show

WAIT WINDOW oform.text1.Value+0.01 && 123,96

Sin embargo desde la ventana de comandos escribes

? _screen.ActiveForm.text1.Value+0.01 && Y muestra 124,01

Aparte de que el primer textbox contiene 124,0, con lo que al editar ,
partimos de un valor erróneo.

Pedro José Hernández Muñoz

blog: http://pedrohdz.blogspot.com/
atom: http://pedrohdz.blogspot.com/atom.xml
"Luis María Guayán" escribió en el mensaje
news:uOzk5j$
Pedro, SET DECIMAL TO especifica el numero de decimales que se _mostrará_,


no
afectando el número almacenado, como por ejemplo la variable "ln" del


siguiente
código:

SET FIXED ON
SET DECIMALS TO 1
ln = VAL("123,95")
? ln
SET DECIMALS TO 4
? ln

La función VAL no redondea numeros de hasta 16 caracteres.

Luis María Guayán
Tucumán, Argentina
________________________________
SysOp de www.PortalFox.com
Microsoft Visual FoxPro MVP
________________________________
La palabra imposible solo figura
en el diccionario de los tontos


"Pedro José Hernández Muñoz" escribió


en el
mensaje news:
> Hola
> No estoy de acuerdo ...
>
> SET DECIMALS TO 1
> ? VAL("123,95") && Muestra 124,0
>
>
> Pedro José Hernández Muñoz
>
> blog: http://pedrohdz.blogspot.com/
> atom: http://pedrohdz.blogspot.com/atom.xml
> "Luis María Guayán" escribió en el mensaje
> news:%
>> La función VAL no redondea, pero convierte a valor numérico una cadena


de
>> caracteres que contiene números hasta 16 caracteres, si es mayor a 16
>> carcateres SI redondea.
>>
>> ? VAL("125235874878457827")
>>
>> Tener en cuenta que VAL() convierte los caracteres de izquierda a


derecha,
>> hasta la aparición de un caracter no numérico. Según que tengas
> configurado
>> como caracter de punto decimal, puede ser el caso de que te redondea a


un
>> valor entero, como el siguiente ejemplo:
>>
>> ? VAL("712.52")
>> ? VAL("712,52")
>>
>> Luis María Guayán
>> Tucumán, Argentina
>> ________________________________
>> SysOp de www.PortalFox.com
>> Microsoft Visual FoxPro MVP
>> ________________________________
>> La palabra imposible solo figura
>> en el diccionario de los tontos
>>
>>
>> "Wilmer" escribió en el mensaje
>> news:04a201c4a0e6$6c9e6a60$
>> > Quisiera saber si la funcion VAL redondea una cifra con
>> > decimales.
>> > Gracias por la ayuda
>>
>>
>
>


Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida