Zaokrouhlovani desetinneho cisla – Java – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Zaokrouhlovani desetinneho cisla – Java – Fórum – Programujte.comZaokrouhlovani desetinneho cisla – Java – Fórum – Programujte.com

 

werixon0
Návštěvník
7. 9. 2010   #1
-
0
-

Nevite, jak zaokrouhlit desetinne cislo na dany pocet mist?
Napr. 12.456789 a chtel bych ho zaokrouhlit na 3 desetinna cisla, na 12.458. Vymyslel jsem na to svoji metodu, ale zda se mi neohrabana. Nenabizi neco primo java?

Nahlásit jako SPAM
IP: 89.102.109.–
liborb
~ Redaktor
+18
Guru
7. 9. 2010   #2
-
0
-

Nejspíš někde něco existovat bude (možná v Math nebo přes DecimalFormat), ale zaokrouhlení lze udělat jednoduše i "ručně". V tvém případě je to nějak takto:

double dValue = 12.456789;

// oriznuti desetinne casti
int nTemp = (int)((dValue + 0.0005) * 1000.0);
// zpetny prevod na double
double dFinal = ((double)nTemp)/1000.0;

Nahlásit jako SPAM
IP: 85.207.166.–
werixon0
Návštěvník
7. 9. 2010   #3
-
0
-

To liborb : Diky, to je lepsi s pretypovanim, ale nerozumim, co tam dela tech 0,0005??
Jinak jsem este vymyslel tohle:

double a=12.123656789;
double b = a*1000;
Math.round(b);
b=b/1000;
System.out.println(b);

Nahlásit jako SPAM
IP: 89.102.109.–
liborb
~ Redaktor
+18
Guru
7. 9. 2010   #4
-
0
-

No ... jestli chceš z 12.456789 dostat 12.457 a ne jenom 12.456, tak tam musí být něco víc než jenom oříznutí desetinných míst. A to něco je právě to + 0.0005 :)

Nahlásit jako SPAM
IP: 85.207.166.–
werixon0
Návštěvník
7. 9. 2010   #5
-
0
-

To liborb : To liborb :
Hmm, takze to bude vzdycky zaokrouhlovat nahoru?? Ja si to zkusim az prijdu domu. ME se nelibi, ze neco pricitam. ale OK Diky

Nahlásit jako SPAM
IP: 89.102.109.–
liborb
~ Redaktor
+18
Guru
7. 9. 2010   #6
-
0
-

Vždycky ne ... když máš číslo 1.23456 a chceš ho zaokrouhlit na 3 místa nahoru (pokud ho tedy chceš zaokrouhlit nahoru :)), tak přičteš 0.0005 a dostaneš 1.23506, ořízneš přebytečná desetinná místa a máš to.

Když by si měl číslo 1.2344999999 a menší (do 1.2340), tak přičtením 0.0005 dostaneš 1.2349999999 a když ořízneš přebytečná desetinná místa, tak dostaneš 1.234, nebo-li to co si chtěl (ten dlouhý zástup 9 na konci ber s rezervou viz přesnost desetinných čísel).

Nahlásit jako SPAM
IP: 85.207.166.–
Makai0
Duch
29. 9. 2010   #7
-
0
-

To werixon : Pokud chces zakrouhlit na 3 mista za desetinou carkou tak vynasob double 1000 pretypuj na Integer, pote opet na double a vydel 1000 dostanes pozadovane format :P

Nahlásit jako SPAM
IP: 62.77.127.–
zdenda
~ Anonymní uživatel
257 příspěvků
29. 9. 2010   #8
-
0
-

To Makai : To je dobrý nápad. Jakto, že to ještě nikoho nenapadlo? :)

Nahlásit jako SPAM
IP: 213.211.51.–
werixon0
Návštěvník
30. 9. 2010   #9
-
0
-

To Makai : Presne tohle rikal kamos, ale me tohle prijde az moc jednoduchy :-D

Nahlásit jako SPAM
IP: 89.102.109.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 7 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý