Java zaokrąglenie (double -> int)

Java zaokrąglenie (double -> int)
  • Rejestracja: dni
  • Ostatnio: dni
0

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

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

i w zmiennej mam 0 ???
dlaczego

  • Rejestracja: dni
  • Ostatnio: dni
1

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

SZ
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 105
0

możesz zrobić tak:

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

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

  • Rejestracja: dni
  • Ostatnio: dni
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?

Kopiuj
double i=...;
int a = (int) Math.round(i);
  • Rejestracja: dni
  • Ostatnio: dni
0

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

Wibowit
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: XML Hills
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.

  • Rejestracja: dni
  • Ostatnio: dni
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.

iooi
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 573
0

Wtedy można użyć BigDecimala:

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

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.