• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Odcinanie części ułamkowej od double java

0 głosów
3,299 wizyt
pytanie zadane 9 lutego 2017 w Java przez gab123 Mądrala (5,230 p.)
Witam, mam pewną zmienną double która jest liczbą całkowitą, ale nie intem ponieważ jest to spora liczba i nie mieści się w incie, i chcę ja pokazać za pomocą system.out.println() ; ale tak by byla bez czesci ulamkowej, czyli np. zamiast 4.00 4. Jak to zrobić ?

3 odpowiedzi

0 głosów
odpowiedź 9 lutego 2017 przez adas94 Nałogowiec (29,200 p.)
wybrane 9 lutego 2017 przez gab123
 
Najlepsza

Masz 

double d = 4.00; 

Zamiast wyświetlać tak 

System.out.println(d);

Wyświetlasz tak

System.out.println((long) d);

Czyli w dużym skrócie wykonujesz po prostu operację rzutowania. 

0 głosów
odpowiedź 9 lutego 2017 przez KubenQPL Maniak (62,840 p.)

Robisz z tego stringa i ucinasz po znaku kropki

double d = 4.00;
String s = d + "";
s = s.substring(0, s.indexOf('.'));

A skoro w incie ci brakuje miejsca to możesz użyć long'a

0 głosów
odpowiedź 9 lutego 2017 przez Adrian Spora Mądrala (5,100 p.)

Jeśli chcesz ją po prostu wypisać na ekran to możesz ją najpierw zaokrąglić na zmienną typu long (to taki int z większym zakresem):

long x = Math.round(d);

Dzięki temu masz zaokrąglenie, a nie samo ucięcie częsci ułamkowej zawsze. (7.99 zwróci 8, a nie 7)

Jeśli nie potrzebujesz tej zmiennej jako long, tylko chcesz ją wypisać na ekran to możesz to zrobić po prostu tak:

System.out.println(Math.round(d)) //d to oczywiście Twoja zmienna typu double

A jeśli nie chcesz zaokrąglać, tylko pozbyć się części ułamkowej, nawet gdyby była większa od 0.5 to możesz zrobić ją jawnie przekonwertować na typ long:

double d = 1234.56;
long x = (long) d; // x = 1234

 

komentarz 9 lutego 2017 przez miro Pasjonat (23,850 p.)
Do obcięcia, można też się posłużyć funkcją Math.floor(), jednak przy ujemnych wartościach trzeba stosować Math.ceil().
komentarz 9 lutego 2017 przez Adrian Spora Mądrala (5,100 p.)
Tak, ale zarówno metoda floor jak i ceil zwraca wartość double, a nie o to autorowi chodzi.

Podobne pytania

+1 głos
3 odpowiedzi 713 wizyt
pytanie zadane 6 listopada 2021 w Java przez ptomeccc Użytkownik (800 p.)
0 głosów
2 odpowiedzi 1,986 wizyt
pytanie zadane 27 kwietnia 2015 w Java przez niezalogowany
0 głosów
2 odpowiedzi 778 wizyt

93,772 zapytań

142,730 odpowiedzi

323,382 komentarzy

63,368 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...