07.02.2011, 09:44 | #1 (permalink) |
Registriert seit: 07.02.2011
Beiträge: 12
|
MATH: Seltsame rundung?
Hallo zusammen,
kann es sein dass die "round" Funktion von A2 n bissle "ungenau" ist? Beispiel bei 3 Werten laut "Adam Riese": G=6 | W=2 W / G * 100 = 33,33% p=33% (gerundet) G=6 |W=3 W / G * 100 = 50% p=50% G=6 |W=1 W / G * 100 = 16,66% p=17% (gerundet) 33+50+17 = 100 Soweit so toll. Arma rechnet aber mit "round" 1. 33% 2. 50% 3. 16% Klar das hier dann 1% fehlt da 16,66 auf 16 "gerundet" wird. Klar ich könnte mit ceil das fixen, aber dann würde aus 13.33 = 14 werden was auch sehr unschön ist. Irgendwer ne Idee wie ich dies bewerkstellige? VG Toby Edit: hier mal der schuldige Code:
Geändert von liKe2k1 (07.02.2011 um 09:47 Uhr). |
07.02.2011, 11:46 | #3 (permalink) |
Registriert seit: 07.02.2011
Beiträge: 12
|
Sure, keine Fehler im Script, wie oben gepostet.
Code:
hint format ["%1",round ((1/6)*100)] Aber: Code:
_x1 = 3; _x2 = 2; _x3 = 1; _x4 = 0; _iTotalCount = _x1+_x2+_x3+_x4; _x3Percent = if ( _x3 >= 1 ) then { round (_x3/_iTotalCount*100) } else {"0"}; hint format["%1", _x3Percent]; Sehr seltsam, kann das jemand mal versuchen zu reproduzieren? VG Toby |
07.02.2011, 19:22 | #5 (permalink) |
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
|
Auch bei mir ist das Ergebnis 17. Das kann am Fließkommaprozessor deines Rechners liegen!?
Teste einmal das: Code:
private ["_x1","_x2","_x3","_x4","_iTotalCount","_x3Percent"]; _x1 = 3; _x2 = 2; _x3 = 1; _x4 = 0; _iTotalCount = _x1+_x2+_x3+_x4; _x3Percent = if ( _x3 >= 1 ) then { round (_x3/_iTotalCount*100) } else {"0"}; hint format["%1", _x3Percent]; Geändert von Vienna (07.02.2011 um 19:30 Uhr). |
08.02.2011, 09:23 | #6 (permalink) |
Registriert seit: 07.02.2011
Beiträge: 12
|
So scheint es, an meinem anderen Rechner bekomm ich auch die 17. Auf meinem Netbook läuft es mit der 16. Hardware: Iten Atom 330 (DualCore + 2 virtual Cores) (4x 1.6 GHz) 4 GB Ram NVidia ION mit 256 MB dedicated RAM OS: WIndows 7 Ultimate (x64) |
08.02.2011, 16:15 | #7 (permalink) |
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
|
Wie ich erst jetzt sehe, ist der Wert vor dem Runden 16,6666..., da kann es eigentlich nicht am Fließkommaprozessor liegen. Das würde mehr auf 16,4999... zutreffen.
Vielleicht solltest du Arma neu auf dem Netbook installieren. Möglicherweise ist dieses kleine Gerät mit dem doch recht umfangreichen Arma-Programm überfordert. Teste dieses Rechenbeispiel einmal auf einem anderen Programm. z.B. Excel. Wenn dort der selbe Fehler auftritt, dann liegt es generell am Prozessor, was eine Reklamation beim Netbook rechtfertigen würde. |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
Themen-Optionen | |
Ansicht | |
|
|