Ja jsem zadnou metodu nenabizel, protoze jsem do diskuse prisel pozde a 
podstatne bylo receno. Ze je nize uvedene reseni

BigDecimal a = a.multiply(new 
BigDecimal(10)).setScale(0,BigDecimal.ROUND_UP).divide(new BigDecimal(10));

ekvivaletni s

BigDecimal a = a.setScale(1,BigDecimal.ROUND_UP);

je zrejme.

Takze zaver, druhe je jednodussi na pochopeni, na udrzbu jiste tez a navic 
rychlejsi. Takze proto bych za prvni odebiral
programatorsky priklad, protoze se u nej moc nepremyslelo.

Petr Burdik napsal(a):
> 
> Hm, a zaokrouhli to vzdy a spravne to Vase reseni nahoru? Ja jenom
> jestli nahodou nedostanete troska jine vysledky nez je potreba. Na
> zvolene metode se mi zasadne libi to, ze funguje za vsech okolnosti.
> 
> Toto neni klasicky matematicky model. Vy resite pouze matematickou cast
> dane veci. To jsem resil i pres round.
> 
> A jak jste videl i v tomto pripade, nazoru a postupu tu bylo mraky a
> myslim ze i casem se nekdo najde, kdo to vyuzije. Slo mi o nejjednodussi
> a presnou metodu. Za coz mohu vsem zucastnenym podekovat. Diky.
> 
> Pet
> 
> 
> On Thu, 19 Apr 2007 07:59:48 +0200, Jiri Mares <[EMAIL PROTECTED]> wrote:
> 
>>
>> Ahojky,
>>
>> klasika jak se da mlatit prazdna slama, misto aby se delalo neco
>> smysluplneho. Takhle pekne kvuli zaokrouhlovani pridat
>> nasobeni a deleni 10ti ....
>>
>> Za to bych odebiral programatorsky prukaz na 2 roky!
>>
>> Jirka
>>
>> Petr Burdik napsal(a):
>>>
>>> Pro Vasi informaci jsem pouzil tento:
>>> BigDecimal a = a.multiply(new
>>> BigDecimal(10)).setScale(0,BigDecimal.ROUND_UP).divide(new
>>> BigDecimal(10));
>>>
>>> To mi alespon poradil nekdo v tomto threadu s tim, ze jsem nakonec
>>> zaokrouhloval na desetiny nahoru.
>>>
>>> Diky moc jeste jednou vsem :)
>>>
>>> Pet
>>>
>>>
>>> On Wed, 18 Apr 2007 12:07:12 +0200, Richard Malaschitz
>>> <[EMAIL PROTECTED]> wrote:
>>>
>>>> Tak to je škoda, že táto plodná diskusia plná zaujímavých algoritmov
>>>> musí
>>>> skončiť. Už som tešil na superrýchly algoritmus zaokrúhľovania:
>>>>
>>>> static int[] round = new int[]
>>>> {0,0,0,0,10,10,10,10,10,10,10,10,10,10,20,20,20,20,20,20,20,20,20,20,30,30,...}
>>>>
>>>>
>>>>
>>>> int getHaliere(float suma) {
>>>>   int haliere = Math.round(suma * 100) % 100;
>>>>   return round[haliere];
>>>> }
>>>>
>>>>
>>>> Diky moc. Uz to mam vyresene. Oni si to jeste poupravili jinak.
>>>> Nakonec je
>>>>>
>>>
>>>
>>>
>>> --Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
>>
> 
> 
> 
> --Using Opera's revolutionary e-mail client: http://www.opera.com/mail/

-- 
Jiří Mareš (mailto:[EMAIL PROTECTED])
ČSAD SVT Praha, s.r.o. (http://www.svt.cz)
Czech Republic

Odpovedet emailem