Sembra una domanda semplice ma Mi piace davvero fare matematica e alcuni esempi online che ho cercato non sembrano funzionare per me. (Il risultato appena restituire lo stesso valore di ingresso, ecc)Java - Come arrotondare il valore float (o BigDecimal) di 0,5?
Per esempio .. ma la sua in C non Java Round to Next .05 in C
Quindi il mio obiettivo è che ho %.1f
formato float
o double
o big decimal
e volendo turno fino al più vicino .5
example:
1.3 --> 1.5
5.5 --> 5.5
2.4 --> 2.5
3.6 --> 4.0
7.9 --> 8.0
ho provato seguente esempio ma non funzionava :(sotto appena uscita 1.3 che è valore originale. ho voluto che fosse 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 funziona !! : D grazie! Avrei dovuto studiare Math come sviluppatore! Potrei anche fare lo stesso Round down with floor() too, awesome –