• Viernes 3 de Mayo de 2024, 01:55

Autor Tema:  Redondeo En Vb6  (Leído 3113 veces)

pigar_69

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Redondeo En Vb6
« en: Martes 31 de Julio de 2007, 08:53 »
0
Hola, necesito redondear una cifra decimal al decimal mas cercano. Es decir, tengo por ejemplo 14,2 y quiero redondear a 14,0, si tengo 14,3 hasta 14,7 redondear a 14,5 y si es superior a 14,7 redondear a 15 y asi sucesivamente....

No se si me he explicado bien, gracias y un saludo.

ElNapster

  • Moderador
  • ******
  • Mensajes: 727
    • Ver Perfil
Re: Redondeo En Vb6
« Respuesta #1 en: Martes 31 de Julio de 2007, 17:12 »
0
Código: Text
  1. Dim a As Integer
  2. a = 12.2
  3. c = Round(a)
  4.  

 :comp:
"Somos lo que imaginamos ser"
-- --------------------------------------------------------------
-ElNapster
-Designer / Developer Software
-GuaTemALa



ROBER.29

  • Miembro MUY activo
  • ***
  • Mensajes: 421
    • Ver Perfil
    • http://www.contrapixel.com
Re: Redondeo En Vb6
« Respuesta #2 en: Martes 31 de Julio de 2007, 17:16 »
0
Hola,

Para eso puedes utilizar la función CInt().

Código: Text
  1.  
  2.  
  3. Resultado = CInt(50.8)    ' Devuelve 50.
  4. Resultado = CInt(-50.8)   ' Devuelve -50.
  5. Resultado = CInt(-50.2)   ' Devuelve -50.
  6.  
  7.  
  8.  

Un saludo.
Roberto García
Moderador de Visual Basic.
Gerente
[contra]PixeL S.L.
Valladolid

pigar_69

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Redondeo En Vb6
« Respuesta #3 en: Miércoles 1 de Agosto de 2007, 08:24 »
0
No me habeis entendido o yo no me he explicado bien, con lo que me habeis dicho redondeo a la parte entera. Yo lo que quiero es si el valor es 14,3 el redondeo quiero que se haga a 14,5 y si el valor es 14,2 el redondeo sea 14,0. Redondear al decimal mas cercano, no al entero.

Gracias por vuestra respuesta. Un saludo.

Yañez

  • Miembro activo
  • **
  • Mensajes: 48
    • Ver Perfil
Re: Redondeo En Vb6
« Respuesta #4 en: Miércoles 1 de Agosto de 2007, 11:29 »
0
Citar
No me habeis entendido o yo no me he explicado bien, con lo que me habeis dicho redondeo a la parte entera. Yo lo que quiero es si el valor es 14,3 el redondeo quiero que se haga a 14,5 y si el valor es 14,2 el redondeo sea 14,0. Redondear al decimal mas cercano, no al entero.

Creo que lo quieres no es redondear al decimal más cercano sino efectuar aproximaciones cada 1/2 (0,5)...

Osea 14,0 - 14,5 - 15,0 - 15,5 y así sucesivamente...

Pues no creo que haya funciones para realizar eso ("creo"), supongo que tendrás que obtener la parte decimal y en base a eso aproximar el número a donde corresponda...

naked-boy

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Re: Redondeo En Vb6
« Respuesta #5 en: Jueves 2 de Agosto de 2007, 21:43 »
0
Hola amigo....
Creo que te estas ahogando en un vaso de agua :o

La respuesta ya te la dieron y no te diste cuenta:

Lo que tienes que hacer es lo siguiente (Pseudocodigo), priemero necesita unas variables donde guardar tus valores, para restarlos y sumarlos.
Yo creo que si te servirá :comp:

Text1.text= 14.5

......
Dim Var1 As Integer
Var1= val(Text1.text)
c = Round(Var1)
.....

if Text1 > c then
  Var2=Text1-c
else
  Var2=c-Text1
end fi
....

if Var2 <= 0.2 then
    ... No haces nada
Text1=c
end if

if Var2 > .03 and Var2 <7 then
Text1=  Var1 - Var2 +  0.5
end if

if Var2 > .07  then
    ... No haces nada
Text1=c
end if