• 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

Object Storage Arubacloud
0 głosów
2,873 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,820 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,870 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 338 wizyt
pytanie zadane 6 listopada 2021 w Java przez ptomeccc Użytkownik (800 p.)
0 głosów
2 odpowiedzi 1,652 wizyt
pytanie zadane 27 kwietnia 2015 w Java przez niezalogowany
0 głosów
2 odpowiedzi 229 wizyt

92,579 zapytań

141,427 odpowiedzi

319,653 komentarzy

61,961 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...