[SOLUCIONADO] Problema matemático

Iniciado por Eleкtro, 10 Enero 2013, 00:35 AM

0 Miembros y 2 Visitantes están viendo este tema.

Eleкtro

Me está volviendo loco este problema!

Estos son los elementos del problema:
  • Un número de GigaBytes, que es una variable de tipo Double.
  • Un label que debe mostrar una cantidad según la cantidad de GB, por cada 4,31 GB debe subir un número de valor al label.

    Es decir... Si el valor de la variable es "4,31" el label debe mostrar un "1", porque es la capacidad de un solo DVD,
    Si el valor de la variable es "4,32" entonces el label debe mostrar un "2" porque el tamaño es más de la capacidad de un dvd pero menos de la capacidad de 2 DVD's completos,
    Si la variable es "10,0" pues el label debe mostrar "3" porqe el tamaño se encuentra entre la capacidad de 3 DVD's,
    etc, etc, etc...

    El problema es que el valor del label se suma cada "3,50" GB, en lugar de cada "4,31" GB.

    Las matemáticas no es lo mio pero yo creo que la división debería funcionar...

    Código (vbnet) [Seleccionar]
    ' El valor de "Label_SIZE.Text.Split(" ")(0))" por ejemplo es: 3,50
    ' (CON COMA, NO PUNTO)

    If Label_SIZE.Text.Contains("GB") Then Label_DVD.Text = 1 + (Label_SIZE.Text.Split(" ")(0)) \ 4.31


    Código (vbnet) [Seleccionar]
    ' En cambio esto SI me funciona:
    ' El valor del label se suma cada "4,5"

    If Label_SIZE.Text.Contains("GB") Then Label_DVD.Text = 1 + (Label_SIZE.Text.Split(" ")(0)) \ 4.50

    ' No entiendoooooooo porque el otro no funciona....










Novlucker

Y sí pruebas convirtiendo el texto a double como corresponde antes de hacer la división? :rolleyes:
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

Eleкtro

#2
Cita de: Novlucker en 10 Enero 2013, 01:00 AM
Y sí pruebas convirtiendo el texto a double como corresponde antes de hacer la división? :rolleyes:

Ah, sí, eso ya lo hice Nov!  Convert.ToDouble(NumeroDeGB) \ 4.31

No lo puse en el ejemplo de arriba pero lo hice antes de preguntar y el resultado es el mismo :(



EDITO:

Necesito una ayuda urgente :(

Voy a ver si pasando el número a bytes obtengo mejores resultados...








Danyfirex

#3
sera porque es así /

/ : Barra división

\ : Barra inversa

no me la creo que a un Scripter tan detallado como vos se te pase ese símbolo jajaja

creo que así lo solucionas.

Código (vbnet) [Seleccionar]
MessageBox.Show("Muestra cuantos CDs: " + Str(Math.Ceiling(10.0 / 4.31)))

saludos

Eleкtro

#4
Tienes toda la razón, supongo
Citar\ Integer division
/ Division

Bueno, mi consuelo es que a alguien tan Pro como NovLucker también se le ha pasado el detalle de la barra xD

Solucionado, Gracias Danyfirex!








Novlucker

Ups  :-X es que estoy de vacaciones desde el teléfono, los códigos se ven cortados y tuve que dar varias vueltas para leerlo  :xD
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

Danyfirex

Cita de: EleKtro H@cker en 10 Enero 2013, 03:14 AM
Tienes toda la razón, supongo
Bueno, mi consuelo es que a alguien tan Pro como NovLucker también se le ha pasado el detalle de la barra xD

Solucionado, Gracias Danyfirex!
eso te pasa por reventarte el coco haciendo tantas cosas a la vez jajajaja.

NovLucker  :¬¬  te hacen mal las vacaciones jajaja.

un gusto ayudar.

saludos compas.