redendo

08/10/2004 - 01:36 por Permingeat Carlos | Informe spam
Hola amigos :

como puedo redondear un numero de tres decimales optener 2

ej : 9,459 x 9,46
 

Leer las respuestas

#1 Leonardo Azpurua
08/10/2004 - 03:58 | Informe spam
"Permingeat Carlos" escribió en el mensaje
news:


Hola amigos :

como puedo redondear un numero de tres decimales optener 2

ej : 9,459 x 9,46



Hola, Carlos:

Dim a as Double = 9.459
r = System.Math.Round(a, 2)
Console.WriteLine(r)

Hay una formulita útil para redondear un número cualquiera a un múltiplo de
cualquier factor f (cuando redondeas a 2 decimales, f = 0.01).

Public Function ForzarMultiplo(numero As Double, factor As Double)
Return System.Math.Floor(numero / factor + 0.5) * factor
End Function

r = ForzarMultiplo(9.459, 0.01)
Console.WriteLine(r)
r = ForzarMultiplo(17, 3)
Console.WriteLine(r)
r = ForzarMultiplo(16, 3)
Console.WriteLine(r)

Forzar los redondeos en las representaciones internas de los numeros puede
producir un efecto acumulativo de perdida de precisión en series de
operaciones.

A menos que tengas una excelente razón para redondear, lo mejor es hacerlo
solo a nivel de presentación. Para ello puedes utilizar la función ToString.

r = 9.456
Console.WriteLine(r.ToString("#,##0.00"))

o incluso, cuando vas a escribir hacia la consola o a formatear una cadena
de salida, puedes utilizar especificaciones como
Console.WriteLine("El valor de {0} redondeado a 2 decimales es
{0:#,##0.00}", r, r)

o si quieres copiar los datos formateados a una cadena, puedes escribir:
s = String.Format("El valor de {0} redondeado a 2 decimales es
{0:#,##0.00}", r, r)
Console.WriteLine(r)

Salud!

Leonardo
mvp vb

Preguntas similares