Wydaje się proste pytanie, ale Naprawdę ssać matematyki i kilka przykładów online Szukałem nie działa dla mnie. (Wynik po prostu wrócić taką samą wartość jak wejście etc)Java - jak zaokrąglić wartość float (lub BigDecimal) o 0,5?
Na przykład .. ale jej w C nie Java Round to Next .05 in C
Więc moim celem jest Mam formatu %.1f
float
lub double
lub big decimal
i chcąc rundzie go do najbliższego .5
example:
1.3 --> 1.5
5.5 --> 5.5
2.4 --> 2.5
3.6 --> 4.0
7.9 --> 8.0
próbowałem następujący przykład, ale nie działa :(poniżej tylko wyjścia 1.3, która jest oryginalna wartość. chciałem być 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 to działa! : D dzięki! Powinienem studiować matematykę jako programistę! Mógłbym nawet zrobić tę samą rundę z podłogą() też, niesamowita –