Dado un decimal '96 .154 ', ¿cómo puedo asegurarme de que siempre se redondea a 96.16 (en oposición al redondeo normal a 2 decimales que daría 96.15)?¿Cómo redondear un decimal hacia arriba?
Respuesta
tipo de hacky, pero de una manera muy intuitiva para hacerlo:
var val = 96.154M;
var result = Math.Ceiling(val * 100)/100.0M;
No es el más ideal como dices, pero parece ser la mejor solución –
creo que lo que buscas es el método Math.Ceiling
.
Puede combinar esto con un multiplicador para especificar la cantidad de lugares decimales a redondear. De esta manera,
public float roundUp(float number, int numDecimalPlaces)
{
double multiplier = Math.Pow(10, numDecimalPlaces))
return Math.ceiling(number*multiplier)/multiplier;
}
Puede agregar 0.005 al valor y luego redondear el resultado.
genio pero, depende si siempre quieres redondear desde cero, ¿qué hay de los negativos? – Jodrell
@Jodrell El título de la pregunta lo dice todo "siempre arriba". Por cierto, elevé el comentario sobre números negativos. –
Esto no funcionará cuando el valor sea '96.150', ya que eso lo redondearía a' 96.16', lo cual es incorrecto, ya que debería indicar '96.15'. – Steven
Aquí está el código de un método RoundUp para un valor y una fracción base. La fracción base que deberías usar para tu pregunta es 0.05M. Sin embargo, el método puede usarse para otro escenario común, que es la fracción base 0.5M; Y puede aplicarlo de maneras interesantes, como por ejemplo, usando una fracción base de 0.3M. Bueno espero que debe responder a sus preguntas, divertirse:
static decimal roundUp(decimal aValue, decimal aBaseFraction)
{
decimal quotient = aValue/aBaseFraction;
decimal roundedQuotient = Math.Round(quotient, 0);
decimal roundAdjust = 0.0M;
if (quotient > roundedQuotient)
{
roundAdjust = aBaseFraction;
}
return roundAdjust + roundedQuotient * aBaseFraction;
}
aquí está mi versión de un método de Roundup, En este pueda específica decimal
void Main()
{
Console.WriteLine(RoundUp(2.8448M, 2));
//RoundUp(2.8448M, 2).Dump();
}
public static decimal RoundUp(decimal numero, int numDecimales)
{
decimal valorbase = Convert.ToDecimal(Math.Pow(10, numDecimales));
decimal resultado = Decimal.Round(numero * 1.00000000M, numDecimales + 1, MidpointRounding.AwayFromZero) * valorbase;
decimal valorResiduo = 10M * (resultado - Decimal.Truncate(resultado));
if (valorResiduo < 5)
{
return Decimal.Round(numero * 1.00M, numDecimales, MidpointRounding.AwayFromZero);
}
else
{
var ajuste = Convert.ToDecimal(Math.Pow(10, -(numDecimales + 1)));
numero += ajuste;
return Decimal.Round(numero * 1.00000000M, numDecimales, MidpointRounding.AwayFromZero);
}
}
- 1. cómo redondear hacia arriba en C#
- 2. ¿Alrededor de la mitad peniques hacia arriba?
- 3. Redondeo de valores hacia arriba o hacia abajo en C#
- 4. redondear decimal usando javascript
- 5. Usando TDD: "arriba hacia abajo" vs. "abajo hacia arriba"
- 6. ¿Diseño de arriba hacia abajo o de abajo hacia arriba?
- 7. Decimal/doble a entero: redondee hacia arriba (no solo hacia el más cercano)
- 8. moverse hacia arriba UIToolbar
- 9. número Truncar decimal no redondear
- 10. Cómo cortar decimal en Java SIN redondear?
- 11. ¿Cómo redondear la marca de tiempo de Unix hacia arriba y hacia abajo a la media hora más cercana?
- 12. setDisplayHomeAsUpEnabled() + Flecha hacia arriba?
- 13. Ronda un rubí flotador hacia arriba o hacia abajo a las 0.05
- 14. ¿Cómo redondear un decimal a la fracción más cercana?
- 15. Mover un elemento hacia arriba o hacia abajo a seleccionar
- 16. Android ListView desplazándose hacia arriba
- 17. Cómo desplazarse WebView hacia arriba en Android?
- 18. Javascript: redondee hacia arriba y hacia abajo al 5 más cercano, luego encuentre un denominador común
- 19. ¿Cómo leer un archivo de abajo hacia arriba en Ruby?
- 20. cómo mover un elemento de vista de lista hacia arriba o hacia abajo con un clic
- 21. selección jQuery: atravesar hacia arriba, luego hacia abajo
- 22. Redondea los números hacia arriba en lugar de hacia abajo | C#
- 23. ¿La pila crece hacia arriba o hacia abajo?
- 24. Mover nodo en árbol hacia arriba o hacia abajo
- 25. ¿Cómo redondear el número decimal a 2 dígitos en iphone?
- 26. Gramática: ¿diferencia entre arriba hacia abajo y hacia abajo? (Ejemplo)
- 27. iOS: Desplácese hacia arriba para actualizar
- 28. Redondeo hacia arriba o hacia abajo en la velocidad
- 29. usuario desplazarse hacia abajo o hacia arriba en jQuery
- 30. jQuery Masonry de abajo hacia arriba
¿Cómo funciona 96,154 ronda hasta 96.16 y no redondear a la baja a 96.15? Sería bueno detallar la especificación de cómo debería funcionar el redondeo –
Consulte este enlace http://stackoverflow.com/questions/11740989/rounding-decimal-value/11741129#11741129 – sabz23
¿Es este el tipo decimal real o el doble? – ken2k