none
No es posible asignar el resultado de una multiplicacion a una variable tipo Long RRS feed

  • Pregunta

  • Hola a todos,

    Estoy trabajando en VBA en MS Excel 2003 y me he encontrado con lo siguiente, que es bastante extraño:

    He declarado  una variable como Long y he tratado de asignarle a esta el resultado de una multiplicacion, pero al hacerlo se me presenta un desbordamiento, sin embargo el resultado está completamente dentro de los límites permitidos para una variable Long (-2.147.483.648 a 2.147.483.647). Lo que es aún más extraño es que si asigno el número directamente a la variable no se presenta el desbordamiento.

    He aquí el código que me está presentando problemas:


    Dim aux as Long

    aux = (20 * 2048) + 1        'Se presenta desbordamiento

    'Si asigno el resultado de la operación (40.961) directamente, todo va bien

    aux = 40961         'No se desborda


    Si alguien sabe qué puede estar sucediendo le agradecería enormemente.


    Saludos

    DJG
    miércoles, 23 de septiembre de 2009 22:07

Respuestas

  • Evidentemente ambos operandos de la multiplicación son por defecto integers por lo quie el objeto resultante también.

    Si (20& * 2048), el objeto resultante a un long.

    Celaví...
    • Marcado como respuesta DJGG miércoles, 23 de septiembre de 2009 22:25
    miércoles, 23 de septiembre de 2009 22:21

Todas las respuestas