her er en version, som kan tage et vilkårligt antal decimaler... (Jeg er dog sikker på, at det kan gøres pænere)
private double afrund( double tal, int decimaler ) { int e = (int)Math.pow(10.0, (double)decimaler ); int i = (int)(e*tal); tal = (double)(i); tal = tal/e; return tal; }
bearhugx 0.5 fordi decimaldelen der smides væk er mindre en ½ , så er den stadig mindre end 1/1 efter at have lagt ½ til, og bliver stadig trunkeret, men hvis decimaldelen > ½ , så for du en mindre decimaldel, men en én større heltalsdel
1.4999 + 0.5 = 1.9999: castet bliver til int det 1 1.5 + 0.5 = 2 : castet til int bliver det 2
Jeg kan også lide Eriks, og den er noget mere overskuelig i eksemplet end vist via linket. Faktisk kunne man parse den tilbage til double, men det er nok en omvej.
Det var til udskrift, da double værdien ikke bruges videre
- regner med at bruge eriks, men da han ikke \"svarede\" får greybeard de 15 points - han har trods alt også lagt noget tankevirksomhed i spørgsmålet... ;)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.