1.2* 10 / 100 no se puede??

andres
11 de Abril del 2004
hola :

Private Sub Form_Load()
Dim A As Integer
Dim B As Integer
B = 1.2
B = B * 10
Label2 = B

B = 1.2
A = B * 10 / 100
Label1.Caption = A
End Sub
'ES = 0.25 pero me pone cero

porque no puedo sar el porcentaje 0.5 de x numero
o sacar el 5% de 1.2 o hacer esto label1= 1.2 * 0.5 /100



andres
11 de Abril del 2004
corrijo lo ultimo si se puede
esto es lo que hago para probar con algo simple..


Option Explicit

Private Sub Form_Load()
Dim A As Integer
Dim B As Integer
B = 1.2
B = B * 10
Label2 = B 'esto me da 10 y deveria dar 12

B = 1.2
A = B * 10 / 100
Label1.Caption = A 'esto me da 0 y deberia dar 0.25

Label3.Caption = 1.2 * 0.5 / 100 ' esto si funciona
End Sub


pero porque cuando lo hago con variables no lo hace,talves yo pienso que tendria que ser asi ..pero no lo es
alguien sabe cual es el problema?



Bartolom
11 de Abril del 2004
Lo que pasa es que los números que son decimales debes declararlos como Single y no como Integer, o si no te recorta la parte decimal. Por eso que 1.2 * 10 te da 10 y no 12, ya que en el fondo estás multiplicando 1*10
Lo mismo ocurre con el label1, te recorta el decimal y te queda en cero.
Para el caso del label3 no hay problema ya que la multiplicación sí te da un número entero.

Prueba cambiar el tipo de variable a Single y en la propiedad format del label puedes definir el número de decimales que quieres que muestre.

Saludos!
Bartolom
Chile


Eduardo
11 de Abril del 2004
Bueno muchachos, en primer lugar deben declarar las variables de tipo double y no integer o single (por los decimales)
todo programa debe trabajar bien con varialbles como sabran nunca un dato es unico y permanente en un sistema.
ejemplo
DIM A,B,C as Double

A=1.2
B=10
C=(A*B)/100 'RESULTADO 0.12 ES CORRECTO
LABEL1=C

y eso es todo asi de censillo. A*B/100, esto me daría
procuren encerrar en () cada operación y recuerden que la primera operacion que se ejecuta es la suma luego la resta y luego la multiplicacion y fnalmente la /

en?
11 de Abril del 2004
bueno Eduardo, la declaración de las variables que has hecho está muy bien programando en C++, pero en Visual Basic lo que has declarado son
únicamente C de tipo Double
A y B son de tipo Variant

Para declarar las tres como Double en una línea puedes hacerlo así:
Dim A As Double, B As Double, C As Double

Saludos.