Parece una pregunta simple pero Realmente apesta en matemáticas y algunos ejemplos en línea que he buscado no parecen funcionar para mí. (El resultado justo devolver el mismo valor que el de entrada, etc.)Java - ¿Cómo redondear el valor del flotante (o BigDecimal) en 0.5?
Por ejemplo .. pero está en C no Java Round to Next .05 in C
Así que mi objetivo es que tengo %.1f
formato float
o double
o big decimal
y con ganas de ronda que hasta el próximo .5
example:
1.3 --> 1.5
5.5 --> 5.5
2.4 --> 2.5
3.6 --> 4.0
7.9 --> 8.0
probé siguiente ejemplo, pero no funcionó :(continuación solo salidas de 1,3 que es valor original. yo quería que fuera 1,5
public class tmp {
public static void main(String[] args) {
double foo = 1.3;
double mid = 20 * foo;
System.out.println("mid " + mid);
double out = Math.ceil(mid);
System.out.println("out after ceil " + out);
System.out.printf("%.1f\n", out/20.0);
}
}
omg it works !! : D gracias! ¡Debería haber estudiado matemáticas como desarrollador! Incluso podría hacer lo mismo Redondear con floor() también, impresionante –