¿Cuál es la sintaxis para redondear un decimal dejando dos dígitos después del punto decimal?Sintaxis para redondear en VB.NET
Ejemplo: 2,566666 -> 2,57
¿Cuál es la sintaxis para redondear un decimal dejando dos dígitos después del punto decimal?Sintaxis para redondear en VB.NET
Ejemplo: 2,566666 -> 2,57
Puede utilizar System.Math
, específicamente Math.Round()
, así:
Math.Round(2.566666, 2)
Math.Round es lo que estás buscando. Si eres nuevo en el redondeo en .NET, también deberías consultar el difference entre AwayFromZero y ToEven redondeo. El valor predeterminado de ToEven en algún momento puede tomar a la gente por sorpresa.
dim result = Math.Round(2.56666666, 2)
Math.Round()
, según lo sugerido por los demás, es probablemente lo que quiere. Pero el texto de su pregunta específicamente preguntó cómo "redondear" [sic]. Si siempre hay que redondear hacia arriba, regarless del valor real (es decir: 2.561111 todavía iría a 2,57), se puede hacer esto:
Math.Ceiling(d * 100)/100D
Si desea redondeo normal, sólo puede utilizar el método Math.Round
. Si specifially desea redondear hacia arriba, se utiliza el Math.Ceiling
método:
Dim d As Decimal = 2.566666
Dim r As Decimal = Math.Ceiling(d * 100D)/100D
No entiendo por qué las personas están recomendando el código incorrecto a continuación:
Dim r As Decimal = Math.Ceiling(d * 100D)/100D
El código correcto para redondear debe ser similar esto:
Dim r As Double = Math.Ceiling(d)
Math.Ceiling tiene dos sobrecargas; uno para decimal y uno para doble. –
el único punto que no sé si es cierto o no es el punto 2 que usted hace. tal vez podría proporcionar y ejemplo? los otros 2 puntos que hace (1 y 3) son incorrectos. aquí está la documentación math.ceiling en su nivel más alto, que mostrará 2 sobrecargas: http://msdn.microsoft.com/en-us/library/System.Math.Ceiling(v=vs.110).aspx –
Mientras Math.Ceiling puede tomar decimal o double, siempre devuelve _ "Devuelve la integral más pequeña" _ (del documento que enlaza). OP específicamente solicita el redondeo a dos decimales. Entonces quieren un decimal/doble, no un entero. Entonces Math.Ceiling no funcionará solo – Adam
La función básica para el redondeo es Math.Ceiling (d), pero el autor de la pregunta específicamente quería reunir después de la segunda cifra decimal. Esto sería Math.Ceiling (d * 100)/100. Por ejemplo, puede multiplicar 46.5671 por 100 para obtener 4656.71, luego redondea para obtener 4657, luego se divide por 100 para desplazar el decimal 2 lugares hacia atrás para obtener 46.57.
Aquí es cómo lo hago:
Private Function RoundUp(value As Double, decimals As Integer) As Double
Return Math.Ceiling(value * (10^decimals))/(10^decimals)
End Function
utilicé esta manera:
Math.Round(d + 0.49D, 2)
ah..yeahh ... THX – leonita