Está en la página 1de 8

Funciones numéricas

Funciones de conversión numérica


Las funciones de conversión numérica se utilizan para cambiar el tipo de dato, de una
expresión no numérica, a algún tipo numérico, a fin de poder operar matemáticamente
con ella. Evidentemente, el resultado de la expresión sólo debe contener números. Si
hay letras o signos se producirá un error. No olvides que si hay varias expresiones, que
una vez convertidas, serán utilizadas en un cálculo matemático, los tipos de conversión
deben ser equivalentes, de lo contrario el resultado son imprevisibles.
CBool (valor)
Convierte un tipo no numérico a tipo Booleano, donde valor debe ser una cadena
numérica, un número o una expresión que devuelva un tipo numérico. Si valor vale cero
CBool () devuelve False, si es mayor que cero devuelve True y si no es numérico, se
producirá un error.
CByte (valor)
Convierte un tipo no numérico a tipo Byte (cuyo rango es de 0 a 255), donde valor debe
ser un número, una cadena numérica o una expresión que devuelva un tipo numérico. Si
valor es mayor de 255 o no es numérico, CByte () devuelve error.
CCur (valor)
Convierte un tipo no numérico a tipo Correncia (cuyo rango va de -
922.337.203.685.477,5808 a 922.337.203.685.477,5807), donde valor debe ser un
número, una cadena numérica o una expresión que devuelva un tipo numérico.
CDbl (valor)
Convierte un tipo no numérico a tipo Doublé (número de precisión doble y punto
flotante), donde valor debe ser un número, una cadena numérica o una expresión que
devuelva un tipo numérico.
CLng (valor)
Convierte un tipo no numérico a tipo Long (entre -2.147.483.648 y 2.147.483.647),
donde valor debe ser un número, una cadena numérica o una expresión que devuelva un
tipo numérico. CLng () se diferencia de las funciones Fix () e Int () en que redondea, en
lugar de truncar, la parte decimal de un número. Cuando la parte decimal es
exactamente 0,5, la función CLng () siempre redondea al número par más cercano. Por
ejemplo: 0,5 se redondea a 0 y 1,5 se redondea a 2.
CInt (valor)
Convierte un tipo no numérico a tipo Integer (entre -32.768 a 32.767), donde valor debe
ser un número, una cadena numérica o una expresión que devuelva un tipo numérico. Al
igual que la anterior, CInt () se diferencia de las funciones Fix() e Int() en que redondea,
en lugar de truncar, la parte decimal de un número. También redondea de la misma
forma que CLng ().

Funciones trigonométricas
Todas las funciones trigonométricas trabajan con el argumento en radianes. Recuerda
que para convertir grados en radianes hay que multiplicar los grados por (pi/180) y para
convertir radianes en grados, multiplicar los radianes por (180/pi). Otro recordatorio: el
número pi vale aproximadamente 3,1415926535…
Sin (ángulo)
Devuelve el seno de un ángulo, medido en radianes, que expresa el argumento ángulo,
que es obligatorio, y que debe ser un número o una expresión que devuelva un tipo
numérico.
El seno de un ángulo es la razón de dos lados de un triángulo rectángulo. Dicho de otro
modo, la razón es la longitud del cateto opuesto al ángulo dividida por la longitud de la
hipotenusa. El resultado está dentro del intervalo -1 a 1.
Cos (ángulo)
Devuelve el coseno de un ángulo, medido en radianes, que expresa el argumento
ángulo, que es obligatorio, y que debe ser un número o una expresión que devuelva un
tipo numérico.
El coseno de un ángulo es la razón de dos lados de un triángulo rectángulo. Dicho de
otro modo, la razón es la longitud del cateto adyacente al ángulo dividida por la longitud
de la hipotenusa. El resultado está dentro del intervalo -1 a 1.
Tan (ángulo)
Devuelve la tangente de un ángulo, medido en radianes, que expresa el argumento
ángulo, que es obligatorio, y que debe ser un número o una expresión que devuelva un
tipo numérico.
La tangente de un ángulo es la razón de dos lados de un triángulo rectángulo. Dicho de
otro modo, la razón es la longitud del cateto opuesto al ángulo, dividida por la longitud
del cateto adyacente al ángulo.
Atn (número)
Devuelve el arco tangente de un número, que expresa el argumento número, que es
obligatorio, y que debe ser un número o una expresión que devuelva un tipo numérico.
Esta función obtiene la razón entre los dos catetos de un triángulo rectángulo y devuelve
el ángulo correspondiente en radianes. La razón es la longitud del lado opuesto al
ángulo dividida por la longitud del lado adyacente al mismo. El resultado está entre (-
pi/2) y (pi/2) radianes.
Con las funciones trigonométricas intrínsecas vistas hasta aquí, y algunas que se
exponen más abajo, se pueden construir otras funciones:
Funciones no intrínsecas Ecuaciones basadas en funciones
intrínsecas
Secante Sec (X) = 1 / Cos(X)
Cosecante Cosec(X) = 1 / Sin(X)
Cotangente Cotan(X) = 1 / Tan(X)
Seno inverso Arcsin(X) = Atn(X / Sqr(-X * X + 1))
Coseno inverso Arccos(X) = Atn(-X / Sqr(-X * X + 1)) +
2 * Atn(1)
Secante inversa Arcsec(X) = Atn(X / Sqr(X * X - 1)) +
Sgn((X) -1) * (2 * Atn(1))
Cosecante inversa Arccosec(X) = Atn(X / Sqr(X * X - 1)) +
(Sgn(X) - 1) * (2 * Atn(1))
Cotangente inversa Arccotan(X) = Atn(X) + 2 * Atn(1)
Seno hiperbólico HSin(X) = (Exp(X) - Exp(-X)) / 2
Coseno hiperbólico HCos(X) = (Exp(X) + Exp(-X)) / 2
Tangente hiperbólica HTan(X) = (Exp(X) - Exp(-X)) / (Exp(X)
+ Exp(-X))
Secante hiperbólica HSec(X) = 2 / (Exp(X) + Exp(-X))
Cosecante hiperbólica HCosec(X) = 2 / (Exp(X) - Exp(-X))
Cotangente hiperbólica HCotan(X) = (Exp(X) + Exp(-X)) /
(Exp(X) - Exp(-X))
Seno hiperbólico inverso HArcsin(X) = Log(X + Sqr(X * X + 1))
Coseno hiperbólico inverso HArccos(X) = Log(X + Sqr(X * X - 1))
Tangente hiperbólica inversa HArctan(X) = Log((1 + X) / (1 - X)) / 2
Secante hiperbólica inversa HArcsec(X) = Log((Sqr(-X * X + 1) +
1) / X)
Cosecante hiperbólica inversa HArccosec(X) = Log((Sgn(X) * Sqr(X *
X + 1) +1) / X)
Cotangente hiperbólica inversa HArccotan(X) = Log((X + 1) / (X - 1)) /
2
Otras funciones numéricas:
Int (valor) – Fix (valor)
Estas dos funciones devuelven el valor entero de un número truncándolo, es decir, que
no redondean. La diferencia entre Fix () e Int () es que si valor es negativo, Int ()
devuelve el primer entero negativo menor o igual a valor, mientras que Fix () devuelve
el primer entero negativo mayor o igual a valor. Por ejemplo: Int () convierte -5,4 en -6
y Fix () convierte -5,4 a -5. Si valor contiene Null devuelven Null.
Abs (numero)
Devuelve el valor absoluto de un número o de cualquier expresión numérica. El valor
absoluto de un número no tiene signo. Por ejemplo, Abs (-1) y Abs (1) devuelven 1.
Sgn (numero)
Devuelve un entero que indica el signo de un número o de cualquier expresión
numérica. Sgn () puede devolver tres valores: Si numero vale 0, devuelve 0. Si es mayor
que 0 devuelve 1 y si es menor que 0 devuelve -1.
Round (valor [, posiciones decimales])

Redondea el número contenido en valor, que es obligatorio, y que debe ser un número o
una expresión que devuelva un tipo numérico. El argumento [, posiciones decimales] es
opcional. Indica cuántas posiciones decimales a la derecha del punto se van a incluir en
el redondeo. Si se omite, la función Round () devuelve un entero.
Sqr (valor)
Devuelve la raíz cuadrada de valor, que es obligatorio, y que debe ser un número o una
expresión que devuelva un tipo numérico de valor 0 o mayor que 0.
Log (valor)
Devuelve el logaritmo natural de valor, que es obligatorio, y que debe ser un número o
una expresión que devuelva un tipo numérico mayor que 0. El logaritmo natural es el
logaritmo en base e. El valor de la constante e es aproximadamente 2.718282.
Utilizando Log () se pueden calcular logaritmos en base-n para cualquier número x,
dividiendo el logaritmo natural de x por el logaritmo natural de n. Veamos un ejemplo
de función para calcular logaritmos en base 10:
Function Log10(X)
Log10 = Log(X) / Log (10)
End Function
Fíjate en que Log10 es el nombre de nuestra función de ejemplo, y no es lo mismo que
Log (10).
Exp (valor)
Devuelve e elevado a una potencia, contenida en valor, que es obligatorio, y que debe
ser un número o una expresión que devuelva un tipo numérico, mayor que 0 y menor
que 709,78271. El valor de la constante e es aproximadamente 2.718282. La función
Exp (), a veces llamada antilogaritmo, complementa la acción de la función Log ().
Oct (valor)
Devuelve un string con el valor en Octal de valor, que es obligatorio, y que debe ser un
número o una expresión que devuelva un tipo numérico entero. Si tiene parte decimal,
será redondeado al entero más cercano antes de obtener su equivalente octal. El máximo
valor octal obtenido no puede ser mayor de 11 caracteres octales.
Hex (valor)
Devuelve un string con el valor en Hexadecimal de valor, que es obligatorio, y que debe
ser un número o una expresión que devuelva un tipo numérico entero. Si tiene parte
decimal, será redondeado al entero más cercano antes de obtener su equivalente
hexadecimal. El máximo valor obtenido no puede ser mayor de 8 caracteres
hexadecimales.
IsNumeric (expresión)
Devuelve un valor de tipo Booleano que indica si expresión puede ser evaluada como
un número. IsNumeric () devuelve True si la expresión completa se reconoce como un
número, en caso contrario, devuelve False. También devuelve False si la expresión es
una fecha.
Rnd ([N])
Genera un número aleatorio partiendo de N, que es opcional.
Rnd devuelve un valor menor que 1 y mayor o igual que 0, por lo que si se quieren
obtener números enteros mayores que 1 hay que hacer algunas operaciones.
Por ejemplo, si se utiliza Rnd de forma simple:
<%
Randomize
For x = 0 To 5
Response.Write (Rnd () & "<BR>")
Next
%>
Se obtiene algo así:
0,2860071
0,4326702
0,959905
0,9140284
0,1316752
Si se quieren obtener números enteros dentro de un cierto intervalo puede utilizarse una
expresión:
Int ((N_mayor - N_menor + 1) * Rnd + N_menor)
Por ejemplo para obtener una secuencia aleatoria entre 1 y 5:
<%
Randomize
For x = 0 To 5
Response.Write (Int ((5 - 1 + 1) * Rnd + 1) & "<BR>")
Next
%>
Y este podría ser el resultado:
5
4
5
2
1
Te preguntarás de dónde ha salido y para qué sirve la instrucción Randomize[n] que
aparece antes del bucle For...To...Next de cada ejemplo; pues se utiliza para inicializar
el generador de números aleatorios.
En efecto, la instrucción Randomize[n] utiliza [n] (opcional) para inicializar el
generador de números aleatorios de la función Rnd (), asignándole un nuevo valor de
inicialización. Si se omite [n], se usará para este fin el valor devuelto por el reloj del
sistema.
Si no se utiliza la instrucción Randomize, la función Rnd () (sin argumento) utiliza
como valor de inicialización el mismo que utilizó la primera vez que se la invoca, por lo
que repetirá la misma secuencia.
FormatNumber (Expresión [, Decimales, [Ceros, [Negativos, [Grupos]]]])
Sirve para dar formato a un número o expresión numérica. El resultado de
FormatNumber () sigue siendo de tipo numérico. Tiene los siguientes parámetros:
Expresión Obligatoria. Es el valor que se pretende formatear. Por supuesto, tiene que ser
un número o una expresión que devuelva un tipo numérico
Decimales Opcionales. Valor numérico que indica cuantas posiciones se muestran a la
derecha del signo decimal. Si se omite, por defecto se aplica -1, y se utilizan los valores
de la configuración regional del servidor. Si Decimales es menor que el número de
dígitos existente, se aplica redondeo,
Ceros Opcional. Indica si se muestran o no los ceros a la izquierda en los valores
fraccionarios. Puede tener dos valores: 0 (por defecto) para no mostrarlos, y -1 para
mostrarlos.
Negativos Opcionales. Indica si se muestran entre paréntesis los valores negativos.
Puede tener dos valores: 0 (por defecto) para no mostrarlos, y -1 para mostrarlos.
Grupos Opcional. Indica si se agrupan o no los números utilizando el delimitador de
grupos especificado en el panel de control del servidor. Puede tener dos valores: 0 (por
defecto) para no agruparlos, y -1 para agruparlos.
Por ejemplo, al escribir:
<%
Response.Write (0012345.1299 & "<BR>")
Response.Write (FormatNumber (0012345.1299, 3, 0, 0, 0) & "<BR>")
Response.Write (FormatNumber (0.1299, 3, 0, 0, 0) & "<BR>")
Response.Write (FormatNumber (0.1299, 3, -1, 0, 0) & "<BR>")
Response.Write (FormatNumber (-0.1299, 3, -1, 0, 0) & "<BR>")
Response.Write (FormatNumber (-0.1299, 3, -1, -1, 0) & "<BR>")
%>
Se obtiene:
12345,1299
12345,130
,130
0,130
-0,130
(0,130)
FormatPercent (Expresión [, Decimales, [Ceros, [Negativos, [Grupos]]]])
Es muy similar a la anterior. Sirve para dar formato a un número o expresión numérica,
y además lo multiplica por 100, añadiéndole a la derecha el signo del tanto por ciento
(%). El resultado de FormatPercent() NO es de tipo numérico. Tiene los mismos
parámetros que FormatNumber ().
Por ejemplo, si se escribe:
<%
Response.Write (0012345.1299 & "<BR>")
Response.Write (FormatNumber (0012345.129999, 3, 0, 0, 0) & "<BR>")
Response.Write (FormatNumber (0.129999, 3, 0, 0, 0) & "<BR>")
Response.Write (FormatNumber (0.129999, 3, -1, 0, 0) & "<BR>")
Response.Write (FormatNumber (-0.129999, 3, -1, 0, 0) & "<BR>")
Response.Write (FormatNumber (-0.129999, 3, -1, -1, 0) & "<BR>")
%>
Se obtiene:
12345,129999
1234513,000%
13,000%
13,000%
-13,000%
(13,000%)

También podría gustarte