Jak zaokrągilć liczby przy konwersji doubla na int?
Mam coś takiego
int zmienna = (int) -0.95;
i w zmiennej mam 0 ???
dlaczego
Jak zaokrągilć liczby przy konwersji doubla na int?
Mam coś takiego
int zmienna = (int) -0.95;
i w zmiennej mam 0 ???
dlaczego
Trochę mieszasz, konwersja i zaokrąglanie to dwie różne rzeczy. Do zaokrąglania służy metoda Math.round().
możesz zrobić tak:
double i=0.95;
int a = (int)(i+0.5) ;
//Edit: Mój błąd nie zauważyłem minusa
@Szewy, głupoty pieprzysz. Po pierwsze chodzi o liczbę -0.95, po drugie do każdej liczby typu double będziesz wynajdował inny sposób zaokrąglania?
double i=...;
int a = (int) Math.round(i);
ale poryty ten jezyk, ze trzeba dawac konwersje (int) przy round :lol
Math.round(double d) zwraca wartość typu long, a Math.round(float f) zwraca wartość typu int. W Javie nie ma niejawnych konwersji long na int, gdyż grozi to utratą informacji.
Dzięki za pomoc.
Właśnie tego szukałem, wiedziałem, że jest coś w stylu 'round' ale nie mogłęm znaleŹć.
Czy można do tego dodawać precyzję itd.
Wtedy można użyć BigDecimala:
BigDecimal.valueOf(liczba).setScale(precyzja, RoundingMode.HALF_UP).doubleValue()