Visual Basic - Operaciones con número largos

Life is soft - evento anual de software empresarial
 
Vista:
Imágen de perfil de Cris
Val: 405
Bronce
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Operaciones con número largos

Publicado por Cris (27 intervenciones) el 18/06/2019 14:53:17
Buenas tardes,

Estoy tratando de hacer un conversor de megas, gigas..., pero no consigo que me de el resultado en números enteros; me lo da con exponencial.

Subo el código por si podéis ayudarme.

Gracias de antemano.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de gilman
Val: 594
Bronce
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Operaciones con número largos

Publicado por gilman (359 intervenciones) el 19/06/2019 10:25:35
Revisando el código el problema principal es la declaración de la variable num1 como Integer, que provoca que la operación num1 * 1024 * 1024 de un error 6 Overflow.
Con lo que no se puede convertir, por ejemplo, 1 Megabyte a Bytes, definiendo la variable como Double, no se producirá el error, pero llegado el caso, por ejemplo al convertir 1000 Terabytes a Bytes se presentará usando notación científica, y con el tiempo se producirá el mismo error.
Si esto no es suficiente puedes probar a escribir el código necesario para realizar las operaciones con la precisión necesaria, o bien obtener una dll que realice el correspondiente cálculo, en http://www.kellyethridge.com/vbcorlib/ tienes el código de una librería que, entre otras muchas cosas hace lo que necesitas.

En el caso de las conversiones de menor a mayor, el problema es que los resultados no son necesariamente enteros, y así si bien 1024 bytes es 1 Kilobyte, 512 bytes es 0.5 Kilobyte, y, llegado el caso, por ejemplo al convertir 1024 Bytes a Gigabytes es necesario usar notación cientifica
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Cris
Val: 405
Bronce
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Operaciones con número largos

Publicado por Cris (27 intervenciones) el 19/06/2019 12:59:31
Muchas gracias por la explicación. El tema es complejo para mi, pero ha sido fácil de entender al leerte.

Probaré a cambiar la declaración de la variable y con la DLL de la que hablas.

Gracias de nuevo y un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar