27.11.2012 Views

Curso de iniciación a la programación con Visual Basic .NET

Curso de iniciación a la programación con Visual Basic .NET

Curso de iniciación a la programación con Visual Basic .NET

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

es lo mismo que esto otro: i = Val("10")<br />

En este caso, usamos <strong>la</strong> función Val para <strong>con</strong>vertir una ca<strong>de</strong>na en un número, pero ese<br />

número es <strong>de</strong>l tipo Double y si tenemos Option Strict On, no nos <strong>de</strong>jará <strong>con</strong>vertirlo en un<br />

Integer... así <strong>de</strong> "estricto" es el Option Strict.<br />

Para solucionarlo, usaremos <strong>la</strong> función CType:<br />

i = CType(Val("10 * 25"), Integer)<br />

Con esto le estamos diciendo al VB que primero <strong>con</strong>vierta <strong>la</strong> ca<strong>de</strong>na en un número<br />

mediante <strong>la</strong> función Val, (que <strong>de</strong>vuelve un número <strong>de</strong> tipo Double), <strong>de</strong>spués le <strong>de</strong>cimos<br />

que ese número Double lo <strong>con</strong>vierta en un valor Integer.<br />

También podríamos hacerlo <strong>de</strong> esta otra forma:<br />

i = CInt(Val("10 * 25"))<br />

Pero cuidado <strong>con</strong> los valores que se evalúan, ya que si el valor que se quiere asignar no<br />

"cabe" en <strong>la</strong> variable a <strong>la</strong> que lo asignamos, nos dará un error <strong>de</strong> overflow... es <strong>de</strong>cir<br />

que el número que queremos asignar es más gran<strong>de</strong> <strong>de</strong> los que ese tipo <strong>de</strong> datos pue<strong>de</strong><br />

soportar... para solucionar esto, habrá que usar un tipo <strong>de</strong> datos que soporte valores<br />

mayores... a eso es a lo que me refería <strong>con</strong> lo <strong>de</strong> <strong>la</strong> <strong>con</strong>versión a otros tipos sin producir<br />

overflow <strong>de</strong> <strong>la</strong> tab<strong>la</strong> anterior.<br />

Por ejemplo:<br />

i = CInt(Val("25987278547875"))<br />

dará error, porque el número ese que está <strong>de</strong>ntro <strong>de</strong> <strong>la</strong>s comil<strong>la</strong>s es <strong>de</strong>masiado gran<strong>de</strong><br />

para almacenarlo en una variable <strong>de</strong> tipo Integer.<br />

Veamos un resumen <strong>de</strong> <strong>la</strong>s distintas funciones <strong>de</strong> <strong>con</strong>versión <strong>de</strong> tipos y algunos<br />

ejemplos:<br />

(estos están tomados <strong>de</strong> <strong>la</strong> ayuda <strong>de</strong> <strong>Visual</strong> <strong>Basic</strong> .<strong>NET</strong>)<br />

Nombre <strong>de</strong> <strong>la</strong> función Tipo <strong>de</strong><br />

datos que<br />

<strong>de</strong>vuelve<br />

Valores <strong>de</strong>l argumento "expresion"<br />

CBool(expresion) Boolean Cualquier valor <strong>de</strong> ca<strong>de</strong>na o expresión numérica.<br />

CByte(expresion) Byte <strong>de</strong> 0 a 255; <strong>la</strong>s fracciones se redon<strong>de</strong>an.<br />

CChar(expresion) Char Cualquier expresión <strong>de</strong> ca<strong>de</strong>na; los valores <strong>de</strong>ben<br />

ser <strong>de</strong> 0 a 65535.<br />

CDate(expresion) Date Cualquier representación válida <strong>de</strong> una fecha o una<br />

hora.<br />

CDbl(expresion) Double Cualquier valor Duoble, ver <strong>la</strong> tab<strong>la</strong> anterior para<br />

los valores posibles.<br />

CDec(expresion) Decimal Cualquier valor Decimal, ver <strong>la</strong> tab<strong>la</strong> anterior para<br />

los valores posibles.<br />

CInt(expresion) Integer Cualquier valor Integer, ver <strong>la</strong> tab<strong>la</strong> anterior para<br />

los valores posibles, <strong>la</strong>s fracciones se redon<strong>de</strong>an.<br />

CLng(expresion) Long Cualquier valor Long, ver <strong>la</strong> tab<strong>la</strong> anterior para los<br />

valores posibles, <strong>la</strong>s fracciones se redon<strong>de</strong>an.<br />

CObj(expresion) Object Cualquier expresión válida.<br />

CShort(expresion) Short Cualquier valor Short, ver <strong>la</strong> tab<strong>la</strong> anterior para<br />

los valores posibles, <strong>la</strong>s fracciones se redon<strong>de</strong>an.<br />

CSng(expresion) Single Cualquier valor Single, ver <strong>la</strong> tab<strong>la</strong> anterior para<br />

los valores posibles.<br />

50

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!