elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Evitar redondeo de decimales en textbox
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Evitar redondeo de decimales en textbox  (Leído 5,744 veces)
rapbyone

Desconectado Desconectado

Mensajes: 173


Ver Perfil
Evitar redondeo de decimales en textbox
« en: 11 Febrero 2015, 16:25 pm »

Estimados, tengo el siguiente código:

Código
  1. Text2.Text = Val(Text1.Text) / 2
  2. Text4.Text = Val(Text3.Text) - Val(Text2.Text)
  3.  


así se ve el formulario:



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


En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.710


WOS & Khan & Calero LDN


Ver Perfil WWW
Re: Evitar redondeo de decimales en textbox
« Respuesta #1 en: 11 Febrero 2015, 16:36 pm »

EHN.vbs
Código
  1. Option Explicit
  2.  
  3. Dim var1, var2, var3, var4
  4. var1 = 105
  5. var2 = 41
  6. var3 = 41 / 2
  7. var4 = var1 - var3
  8. MsgBox "Resultado: " & var4

Resultado: 84.5


En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
okik


Desconectado Desconectado

Mensajes: 462


Ver Perfil
Re: Evitar redondeo de decimales en textbox
« Respuesta #2 en: 11 Febrero 2015, 17:15 pm »

Código
  1. Dim A As Variant, B As Variant
  2. A = Text1.Text
  3. B = FormatNumber(A / 2, 2) 'No redondea y muestra dos decimales
  4. Text2.Text = B
  5. Text3.Text = CInt(A / 2) 'Redondea
  6. Text4.Text = CVar(A / 2) 'No redondea
  7.  


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


« Última modificación: 11 Febrero 2015, 17:25 pm por okik » En línea

rapbyone

Desconectado Desconectado

Mensajes: 173


Ver Perfil
Re:
« Respuesta #3 en: 11 Febrero 2015, 17:49 pm »

Se pasaron muchas gracias

Enviado desde mi LG-D805 mediante Tapatalk
En línea

rapbyone

Desconectado Desconectado

Mensajes: 173


Ver Perfil
Re: Evitar redondeo de decimales en textbox
« Respuesta #4 en: 11 Febrero 2015, 19:40 pm »

¿Estimados y para aproximar un decimal, por ejemplo si tengo "76,5" me muestre 77?
En línea

okik


Desconectado Desconectado

Mensajes: 462


Ver Perfil
Re: Evitar redondeo de decimales en textbox
« Respuesta #5 en: 11 Febrero 2015, 19:57 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:

Código
  1. Dim A As Variant, B As Variant
  2. A = 76.5
  3. B = A - Int(A)
  4. If B = 0.5 Then
  5. A = A - 0.5 + 1
  6. End If
  7.  
  8. 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




« Última modificación: 11 Febrero 2015, 20:03 pm por okik » En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.458



Ver Perfil
Re: Evitar redondeo de decimales en textbox
« Respuesta #6 en: 11 Febrero 2015, 20:39 pm »

solo para aportar algo... se puede simplificar el código de okik para ahorrarnos la comparación

Código
  1. Dim A As Variant
  2. A = 76.5
  3. A = Int(A+0.5)
  4. Label1.Caption = A
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
okik


Desconectado Desconectado

Mensajes: 462


Ver Perfil
Re: Evitar redondeo de decimales en textbox
« Respuesta #7 en: 12 Febrero 2015, 17:32 pm »

solo para aportar algo... se puede simplificar el código de okik para ahorrarnos la comparación

Código
  1. Dim A As Variant
  2. A = 76.5
  3. A = Int(A+0.5)
  4. 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.

« Última modificación: 13 Febrero 2015, 18:02 pm por okik » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines