Foros del Web » Programación para mayores de 30 ;) » .NET »

Decimal 1 decimal sin aproximar

Estas en el tema de Decimal 1 decimal sin aproximar en el foro de .NET en Foros del Web. Estimados, junto con saludarlos quisiera saber como puedo una variable tipo double trabajarla solo con un decimal y sin aproximarlo. Por ejemplo: double var1 = ...
  #1 (permalink)  
Antiguo 01/02/2011, 16:08
 
Fecha de Ingreso: febrero-2003
Ubicación: chile
Mensajes: 101
Antigüedad: 21 años, 1 mes
Puntos: 1
Decimal 1 decimal sin aproximar

Estimados, junto con saludarlos quisiera saber como puedo una variable tipo double trabajarla solo con un decimal y sin aproximarlo.

Por ejemplo:

double var1 = 513/7;

la operacion da como resultado = 73,2857

pero yo necesito que var1 quede solo como 73,2 sin aproximar ni nada-


Desde ya muchas gracias.

Saludos....
__________________
s[K]eL
  #2 (permalink)  
Antiguo 02/02/2011, 03:31
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 2 meses
Puntos: 9
Respuesta: Decimal 1 decimal sin aproximar

Sea como sea, debes redondear. La cuestión es de qué forma se redondea, para que se comporte como tú esperas.
Tienes dos formas de redondear com Math.Round:
Código vb.net:
Ver original
  1. Math.Round(tuNumero, 1, MidpointRounding.AwayFromZero)
  2. Math.Round(tuNumero, 1, MidpointRounding.ToEven)
Espero que te sirva.
Saludos.
__________________
..:: moNTeZIon ::..
  #3 (permalink)  
Antiguo 02/02/2011, 06:29
 
Fecha de Ingreso: febrero-2003
Ubicación: chile
Mensajes: 101
Antigüedad: 21 años, 1 mes
Puntos: 1
Respuesta: Decimal 1 decimal sin aproximar

Probe ambos metodos pero no me funciona, por ejemlo tengo el numero

52.08 y ambos me los deja como 52.1 y necesito que lo deje solo en 52.0
__________________
s[K]eL
  #4 (permalink)  
Antiguo 02/02/2011, 08:02
Avatar de Heimish2000  
Fecha de Ingreso: enero-2011
Ubicación: Madrid
Mensajes: 844
Antigüedad: 13 años, 2 meses
Puntos: 89
Respuesta: Decimal 1 decimal sin aproximar

http://www.forosdelweb.com/f29/forma-redondear-truncar-decimales-472848/

FormatNumber(miNumero,2)

*Dónde 2 es el número de decimales que le quieras poner.

Si no siempre puedes hacer var1 = ((Integer)(var1*10))/10
  #5 (permalink)  
Antiguo 02/02/2011, 09:04
 
Fecha de Ingreso: febrero-2003
Ubicación: chile
Mensajes: 101
Antigüedad: 21 años, 1 mes
Puntos: 1
Respuesta: Decimal 1 decimal sin aproximar

Gracias por todas sus respuestas les cuento que solucione el tema con la siguiente funcion:

Código:
public static double Round(double num, int decimales)
        {
            double multi = Math.Pow(10.0d, (double)decimales);
            return ((int)((num * multi))) / multi;
        }
__________________
s[K]eL
  #6 (permalink)  
Antiguo 02/02/2011, 09:51
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 2 meses
Puntos: 9
Respuesta: Decimal 1 decimal sin aproximar

Hola skel363, cierto! Lo que te indiqué no funciona. Te pido disculpas.
El siguiente código resolverá tu problema.
Por cierto Heimish2000, FormatNumber también redondea, con lo que no sirve.
Código VB.NET:
Ver original
  1. Dim miNumero As Decimal = 123.69
  2. Dim PrimerDecimal As Decimal = Mid(miNumero - Fix(miNumero), 1, 3) 'Esto nos devolverá: 0.6
  3. MessageBox.Show(Fix(miNumero) + PrimerDecimal)
El código es sencillo y comprensible.
Para cualquier aclaración responder este mismo post.
Saludos.
__________________
..:: moNTeZIon ::..

Etiquetas: decimal
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:09.