SoloCodigo

Programación General => Visual Basic 6.0 e inferiores => Mensaje iniciado por: pigar_69 en Martes 31 de Julio de 2007, 08:53

Título: Redondeo En Vb6
Publicado por: pigar_69 en Martes 31 de Julio de 2007, 08:53
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.
Título: Re: Redondeo En Vb6
Publicado por: ElNapster en Martes 31 de Julio de 2007, 17:12
Código: Text
  1. Dim a As Integer
  2. a = 12.2
  3. c = Round(a)
  4.  

 :comp:
Título: Re: Redondeo En Vb6
Publicado por: ROBER.29 en Martes 31 de Julio de 2007, 17:16
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.
Título: Re: Redondeo En Vb6
Publicado por: pigar_69 en Miércoles 1 de Agosto de 2007, 08:24
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.
Título: Re: Redondeo En Vb6
Publicado por: Yañez en Miércoles 1 de Agosto de 2007, 11:29
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...
Título: Re: Redondeo En Vb6
Publicado por: naked-boy en Jueves 2 de Agosto de 2007, 21:43
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