Java zaokrąglenie (double -> int)

0

Jak zaokrągilć liczby przy konwersji doubla na int?

Mam coś takiego
int zmienna = (int) -0.95;

i w zmiennej mam 0 ???
dlaczego

1

Trochę mieszasz, konwersja i zaokrąglanie to dwie różne rzeczy. Do zaokrąglania służy metoda Math.round().

0

możesz zrobić tak:

double i=0.95;
int a = (int)(i+0.5) ;

//Edit: Mój błąd nie zauważyłem minusa

0

@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);
0

ale poryty ten jezyk, ze trzeba dawac konwersje (int) przy round :lol

0

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.

0

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.

0

Wtedy można użyć BigDecimala:

BigDecimal.valueOf(liczba).setScale(precyzja, RoundingMode.HALF_UP).doubleValue()

1 użytkowników online, w tym zalogowanych: 0, gości: 1