Estimados, tengo el siguiente código:
Text2.Text = Val(Text1.Text) / 2
Text4.Text = Val(Text3.Text) - Val(Text2.Text)
así se ve el formulario:
(http://i38.servimg.com/u/f38/14/27/29/04/sin_ty18.png)
Donde primero divido el "valor 2" por 2 y el resultado lo resto al "valor 1"
El problema es que el resultado en el text4.text, debería ser 84,5, pero automáticamente redondea el valor a 85.
¿Como evito que el valor se redondeé?
Muchas Gracias
EHN.vbs
Option Explicit
Dim var1, var2, var3, var4
var1 = 105
var2 = 41
var3 = 41 / 2
var4 = var1 - var3
MsgBox "Resultado: " & var4
Resultado: 84.5
Dim A As Variant, B As Variant
A = Text1.Text
B = FormatNumber(A / 2, 2) 'No redondea y muestra dos decimales
Text2.Text = B
Text3.Text = CInt(A / 2) 'Redondea
Text4.Text = CVar(A / 2) 'No redondea
Usa 'Variant' para evitar el redondeo e 'Integer' para redondear. Para evitar demasiados decimales: 1.6666666667, usa FormatNumber (numero, decimales).
Si no quieres usar variables. Como en el ejemplo anterior, pones:
CVar(valor) <----No redondea
CInt(valor) <---Redondea
Se pasaron muchas gracias
Enviado desde mi LG-D805 mediante Tapatalk
¿Estimados y para aproximar un decimal, por ejemplo si tengo "76,5" me muestre 77?
Cita de: rapbyone en 11 Febrero 2015, 19:40 PM
¿Estimados y para aproximar un decimal, por ejemplo si tengo "76,5" me muestre 77?
No he encontrado ninguna función para eso, no se si habrá. Puedes usar este sencillo código:
Dim A As Variant, B As Variant
A = 76.5
B = A - Int(A)
If B = 0.5 Then
A = A - 0.5 + 1
End If
Label1.Caption = A
Lo que hace es lo siguiente:
A= 76.5 '//mete el valor en A
B = A - Int(A) '//B= 76.5 - 76 = 0.5
if B= 0.5 then '//Si B es igual a 0.5 entonces....
A= A- 0.5+1 '// A= 76.5 - 0.5+1
End If
Label1.Caption = A '//Muestra el valor de A = 77
solo para aportar algo... se puede simplificar el código de okik para ahorrarnos la comparación
Dim A As Variant
A = 76.5
A = Int(A+0.5)
Label1.Caption = A
Cita de: engel lex en 11 Febrero 2015, 20:39 PM
solo para aportar algo... se puede simplificar el código de okik para ahorrarnos la comparación
Dim A As Variant
A = 76.5
A = Int(A+0.5)
Label1.Caption = A
Te había rectificado, pero tu ejemplo es mucho mejor. Está genial ;-). No me di cuenta que pusistes int() y te dije que si A =78 entonces el label daría 78.5. Esto es lo que pasa cuando un va de listo y resulta que soy medio listo :P.