Discussion:
OO źle zaokrągla!?!?
(Wiadomość utworzona zbyt dawno temu. Odpowiedź niemożliwa.)
wzk2
2006-07-21 09:44:35 UTC
Permalink
Funkcja ZAOKR a Calcu błędnie zaokrągla, bo np.
ZAOKR(1,75;1) daje 1,8, co jest prawidłowe, ale
ZAOKR(1,65;1) daje 1,7, co jest błędne, bo powinno być 1,6,
zgodnie z nieobciążoną regułą, że przy odrzucaniu "5" zaokrągla się do
najbliższej parzystej.

JSz.
JMM
2006-07-21 09:59:33 UTC
Permalink
Post by wzk2
Funkcja ZAOKR a Calcu błędnie zaokrągla, bo np.
ZAOKR(1,75;1) daje 1,8, co jest prawidłowe, ale
ZAOKR(1,65;1) daje 1,7, co jest błędne, bo powinno być 1,6,
Nie sądzę, by był to błąd. MS Excel zaokrągla identycznie. QuatroPro
Corela też.
--
Z wyrazami szacunku
Jan M. Mayer <j_m_mayer (_a_) poczta.onet.pl>
Archiwum grupy pl.sci.historia (1996-2006):
http://eyeofra.risp.pl/archiwum/index.html
gerhboch
2006-07-21 10:15:44 UTC
Permalink
Post by JMM
Post by wzk2
Funkcja ZAOKR a Calcu błędnie zaokrągla, bo np.
ZAOKR(1,75;1) daje 1,8, co jest prawidłowe, ale
ZAOKR(1,65;1) daje 1,7, co jest błędne, bo powinno być 1,6,
Nie sądzę, by był to błąd. MS Excel zaokrągla identycznie. QuatroPro
Corela też.
--
Z wyrazami szacunku
Jan M. Mayer <j_m_mayer (_a_) poczta.onet.pl>
http://eyeofra.risp.pl/archiwum/index.html
liczbe 5 zaokrągla się zawsze do góry, wynika to z faktu że w
ciągu liczb 0,1,2,3,4,5,6,7,8,9
połowa jest 4,5 czyli 5 jest powyżej połówki i dlatego 1,65 1,75
itp bedą zawsze zaokrąglane do góry chyba, że zastosujemy funkcje
np: zaokrąglenie w dół lub inną dostepną
Wojtek Bartoszyński
2006-07-21 10:12:47 UTC
Permalink
Post by wzk2
Funkcja ZAOKR a Calcu błędnie zaokrągla, bo np.
ZAOKR(1,75;1) daje 1,8, co jest prawidłowe, ale
ZAOKR(1,65;1) daje 1,7, co jest błędne, bo powinno być 1,6,
zgodnie z nieobciążoną regułą, że przy odrzucaniu "5" zaokrągla się do
najbliższej parzystej.
IMO zaokrągla dobrze!
A co to za "nieobciążona reguła"?
Mnie uczono tak:
Gdy odrzucana jest jedna z pięciu cyfr: 0, 1, 2, 3, 4 - w dół,
gdy jedna z pięciu 5, 6, 7, 8, 9 - w góre. Proste, logiczne.

http://pl.wikibooks.org/wiki/Matematyka_dla_liceum:Przybli%C5%BCenia_liczbowe
--
pozdrawiam - Wojtek Bartoszyński
*********************************************************
*Gdyby wszyscy byli bogaci, nikt nie chciałby wiosłować.*
**********************************(przysłowie norweskie)*
wzk2
2006-07-21 12:58:25 UTC
Permalink
Post by Wojtek Bartoszyński
Gdy odrzucana jest jedna z pięciu cyfr: 0, 1, 2, 3, 4 - w dół,
gdy jedna z pięciu 5, 6, 7, 8, 9 - w góre. Proste, logiczne.
Proste, ale nie całkiem logiczne, bo dlaczego 5 zawsze przybliżać w
górę, skoro od 5 do 0 jest tak samo daleko w górę jak i w dół.

Dlatego "reguła nieobciążona" powiada, że 5 zaokrąglamy w kierunku
najbliższej liczby wyższego rzędu, raz w górę - gdy stoi za liczbą
nieparzystą - a raz w dół - gdy stoi za liczbą parzystą - czyli inaczej
mówiąc, do najbliższej liczby parzystej.

Gdyby 5 zaokrąglać stale w górę, to pojawiłby się systematyczny błąd,
który łatwo zauważyć porównując wynik dodawania liczb zaokrąglonych wg
reguły "obciążonej" z wynikiem zaokrąglenia sumy liczb niezaokrąglonych.

JSz.
Tarcamion
2006-07-21 14:52:49 UTC
Permalink
[ciach]

Chyba iv klasa szkoły podstawoej... Mnie wtedy tego uczyli, nie wiem jak
dziś. Może warto nadrobić zaległości?
--
Tarcamion
Używam Fedora Core 5, Thunderbird, Firefox, OpenOffice, Gnome...
opiekuję się:
http://easylinux.info/wiki/Fedora_fc5_pl
wzk2
2006-07-21 13:09:37 UTC
Permalink
cf. http://en.wikipedia.org/wiki/Rounding
lub http://www.pacific.edu/college/psychology/Statistics/Rounding.html

JSz.
JMM
2006-07-21 13:34:59 UTC
Permalink
Post by wzk2
cf. http://en.wikipedia.org/wiki/Rounding
Na samym końcu tego artykułu masz linki, wśród nich jest ten:
http://www.pldesignline.com/howto/showArticle.jhtml;?articleID=175801189,
który prowadzi do artykułu pt. "An introduction to different rounding
algorithms". Calc z OpenOffice.org oferuje możliwość skorzystania z
większości opisanych tam sposobów zaokrąglania, wystarczy poczytać
helpa.
--
Z wyrazami szacunku
Jan M. Mayer <j_m_mayer (_a_) poczta.onet.pl>
Archiwum grupy pl.sci.historia (1996-2006):
http://eyeofra.risp.pl/archiwum/index.html
SuwarKa
2006-07-22 12:00:26 UTC
Permalink
Post by JMM
Post by wzk2
cf. http://en.wikipedia.org/wiki/Rounding
http://www.pldesignline.com/howto/showArticle.jhtml;?articleID=175801189,
który prowadzi do artykułu pt. "An introduction to different rounding
algorithms". Calc z OpenOffice.org oferuje możliwość skorzystania z
większości opisanych tam sposobów zaokrąglania, wystarczy poczytać
helpa.
W matematyce reguły zaokrąglania są niezmienne od lat - do 4 zaokrąglamy
w dół, od 5 zaokrąglamy w górę. Nie twórz nowej matematyki, a jeśli jest
ci to potrzebne z jakichś powodów, rób to ręcznie.
Tak więc Calc działa prawidłowo.
--
Pozdrawiam
Dzikus
Tristan
2006-07-22 15:03:16 UTC
Permalink
W odpowiedzi na pismo z sobota, 22 lipca 2006 14:00
(autor SuwarKa
publikowane na alt.pl.openoffice,
Post by SuwarKa
W matematyce reguły zaokrąglania są niezmienne od lat - do 4 zaokrąglamy
w dół, od 5 zaokrąglamy w górę. Nie twórz nowej matematyki, a jeśli jest
ci to potrzebne z jakichś powodów, rób to ręcznie.
Tak więc Calc działa prawidłowo.
Nie wiem w jakiej matematyce, bo mnie uczono tak jak wzk2

1,2,3,4 5 6,7,8,9

Mamy 4 cyfry po lewej i 4 po prawej, więc 5 dorzucamy raz tu, raz tu, żeby
było ,,sprawiedliwie''. Inaczej, przy dłuższym zestawie danych otrzymamy
dość znaczny błąd.
--
Jego Ponurość Tristan
Wojtek Bartoszyński
2006-07-22 15:55:46 UTC
Permalink
Post by Tristan
1,2,3,4 5 6,7,8,9
Mamy 4 cyfry po lewej i 4 po prawej, więc 5 dorzucamy raz tu, raz tu, żeby
Bodajże Fenicjanie wymyślili zero. Nie zaprzepaszczaj ich wynalazku! :-)
0,1,2,3,4 | 5,6,7,8,9
--
pozdrawiam - Wojtek Bartoszyński
*********************************************************
*Gdyby wszyscy byli bogaci, nikt nie chciałby wiosłować.*
**********************************(przysłowie norweskie)*
Cyklista
2006-07-22 21:25:45 UTC
Permalink
Post by Wojtek Bartoszyński
Post by Tristan
1,2,3,4 5 6,7,8,9
Mamy 4 cyfry po lewej i 4 po prawej, więc 5 dorzucamy raz tu, raz tu, żeby
Bodajże Fenicjanie wymyślili zero. Nie zaprzepaszczaj ich wynalazku! :-)
0,1,2,3,4 | 5,6,7,8,9
Z całym szacunkiem:
To mi trochę pachnie demagogią.
Z tego co wiem, to zera się chyba nie zaokrągla. Zaokrągla się pozostałe
9 cyfr właśnie do "zera" w dół lub do "zera" w górę.
Mówiąc prościej: mniej niż połowa, czyli np. 0,499999 - w dół czyli 0;
więcej niż połowa, czyli np. 0,500001 - w górę, czyli 1 (przy
zaokrąglaniu do liczb całkowitych). 0,5 to dokładnie połowa, a nie
więcej niż połowa. W praktyce np przy zaokrąglaniu ułamków rzadko jest
dokładnie 0,5. częściej jest albo ciut mniej, albo ciut więcej.

Pozdrawiam

Przemek
eM
2006-07-23 07:10:24 UTC
Permalink
[...]
Post by Cyklista
To mi trochę pachnie demagogią.
Z tego co wiem, to zera się chyba nie zaokrągla. Zaokrągla się pozostałe
9 cyfr właśnie do "zera" w dół lub do "zera" w górę.
Mówiąc prościej: mniej niż połowa, czyli np. 0,499999 - w dół czyli 0;
więcej niż połowa, czyli np. 0,500001 - w górę, czyli 1 (przy
zaokrąglaniu do liczb całkowitych). 0,5 to dokładnie połowa, a nie
więcej niż połowa. W praktyce np przy zaokrąglaniu ułamków rzadko jest
dokładnie 0,5. częściej jest albo ciut mniej, albo ciut więcej.
Pozdrawiam
Przemek
A 20 ?
20 21 22 23 24 ?
MariuszR
2006-07-23 08:15:02 UTC
Permalink
Post by Wojtek Bartoszyński
Bodajże Fenicjanie wymyślili zero. Nie zaprzepaszczaj ich wynalazku! :-)
0,1,2,3,4 | 5,6,7,8,9
To rozważ taki przykład, masz następujące wyniki pomiaru:

0,15 ; 0,25 ; 0,35 ; 0,45

Miernik pokazuje ci warości z dokładnością do jednego miejsca po przecinku.
podaj mi średnią z tych wyników zakładając że 5 zawsze zaokrąglamy w
górę, a następnie sprawdź wynik jeśli będzimy zaokrągali do liczby
parzystej.
Wojtek Bartoszyński
2006-07-23 11:36:35 UTC
Permalink
Post by MariuszR
Post by Wojtek Bartoszyński
Bodajże Fenicjanie wymyślili zero. Nie zaprzepaszczaj ich wynalazku! :-)
0,1,2,3,4 | 5,6,7,8,9
0,15 ; 0,25 ; 0,35 ; 0,45
Miernik pokazuje ci warości z dokładnością do jednego miejsca po przecinku.
podaj mi średnią z tych wyników zakładając że 5 zawsze zaokrąglamy w
górę, a następnie sprawdź wynik jeśli będzimy zaokrągali do liczby
parzystej.
Będą się różniły
Podobnie jak będą się różniły
0,16 ; 0,26 ; 0,36 ; 0,46
zaokrąglone i "zaokrąglone" poprzez odrzucenie setnych części.
Tylko co z tego?
--
pozdrawiam - Wojtek Bartoszyński
*********************************************************
*Gdyby wszyscy byli bogaci, nikt nie chciałby wiosłować.*
**********************************(przysłowie norweskie)*
Tristan
2006-07-23 19:07:10 UTC
Permalink
W odpowiedzi na pismo z niedziela, 23 lipca 2006 13:36
(autor Wojtek Bartoszyński
publikowane na alt.pl.openoffice,
Post by Wojtek Bartoszyński
Będą się różniły
Podobnie jak będą się różniły
0,16 ; 0,26 ; 0,36 ; 0,46
zaokrąglone i "zaokrąglone" poprzez odrzucenie setnych części.
Tylko co z tego?
No właśnie to. Albo zastosujemy sprawiedliwe zaokrąglanie albo działanie
wprowadzające błędy/
--
Jego Ponurość Tristan
Cyklista
2006-07-23 20:02:52 UTC
Permalink
Post by Tristan
No właśnie to. Albo zastosujemy sprawiedliwe zaokrąglanie albo działanie
wprowadzające błędy/
Ale przecież każde zaokrąglanie jest obarczone błędem i w efekcie daje
wartość przybliżoną a nie dokładną.
Dlatego w wielu "urzędowych" wyliczeniach dopuszczalne są różnice
wyników wynikające z iloczynu liczby pozycji i dokładności
zaokrąglenia. Jeżeli zależy nam na dokładniejszym wyniku, to dodajemy
jedno lub dwa miejsca po przecinku w poszczególnych pozycjach
zestawienia, a zaokrąglamy dopiero sumę końcową.

Pozdrawiam

Przemek
Tristan
2006-07-25 17:47:12 UTC
Permalink
W odpowiedzi na pismo z niedziela, 23 lipca 2006 22:02
(autor Cyklista
publikowane na alt.pl.openoffice,
Post by Cyklista
Post by Tristan
No właśnie to. Albo zastosujemy sprawiedliwe zaokrąglanie albo działanie
wprowadzające błędy/
Ale przecież każde zaokrąglanie jest obarczone błędem i w efekcie daje
wartość przybliżoną a nie dokładną.
Tak, ale zaokrąglanie wg Waszych pomysłów daje większy błąd.
--
Jego Ponurość Tristan
SuwarKa
2006-07-26 05:28:35 UTC
Permalink
Post by Tristan
Tak, ale zaokrąglanie wg Waszych pomysłów daje większy błąd.
Zaokrąglaj sobie jak chcesz. Są jednak przyjęte pewne międzynarodowe
zasady i według tych zasad działa Opera, a więc działa dobrze.
--
Pozdrawiam
Dzikus
Tristan
2006-07-26 20:31:15 UTC
Permalink
W odpowiedzi na pismo z środa, 26 lipca 2006 07:28
(autor SuwarKa
publikowane na alt.pl.openoffice,
Post by SuwarKa
Zaokrąglaj sobie jak chcesz. Są jednak przyjęte pewne międzynarodowe
zasady
No. I te zasady działają tak, że zaokrągla się do parzystej.
--
Jego Ponurość Tristan
Tristan
2006-07-23 08:30:11 UTC
Permalink
W odpowiedzi na pismo z sobota, 22 lipca 2006 17:55
(autor Wojtek Bartoszyński
publikowane na alt.pl.openoffice,
Post by Wojtek Bartoszyński
Post by Tristan
1,2,3,4 5 6,7,8,9
Mamy 4 cyfry po lewej i 4 po prawej, więc 5 dorzucamy raz tu, raz tu, żeby
Bodajże Fenicjanie wymyślili zero. Nie zaprzepaszczaj ich wynalazku! :-)
0,1,2,3,4 | 5,6,7,8,9
I wg Ciebie 0 się zaokrągla?
--
Jego Ponurość Tristan
Tristan
2006-07-23 08:33:29 UTC
Permalink
W odpowiedzi na pismo z sobota, 22 lipca 2006 17:55
(autor Wojtek Bartoszyński
publikowane na alt.pl.openoffice,
Post by Wojtek Bartoszyński
Post by Tristan
1,2,3,4 5 6,7,8,9
Mamy 4 cyfry po lewej i 4 po prawej, więc 5 dorzucamy raz tu, raz tu, żeby
Bodajże Fenicjanie wymyślili zero. Nie zaprzepaszczaj ich wynalazku! :-)
0,1,2,3,4 | 5,6,7,8,9
I wg Ciebie 0 się zaokrągla? Bo to właśnie ono jest celem....


0 <---- 1,2,3,4
6,7,8,9 --> 0

0 <--5 --> 0
--
Jego Ponurość Tristan
JMM
2006-07-22 19:34:43 UTC
Permalink
Post by SuwarKa
Tak więc Calc działa prawidłowo.
Nie bardzo wiem, czemu odpisujesz mi, skoro to nie ja twierdzę, że
Calc działa nieprawidłowo...
--
Z wyrazami szacunku
Jan M. Mayer <j_m_mayer (_a_) poczta.onet.pl>
Archiwum grupy pl.sci.historia (1996-2006):
http://eyeofra.risp.pl/archiwum/index.html
Piotr Kuliński
2006-07-24 11:18:10 UTC
Permalink
Post by SuwarKa
Post by JMM
Post by wzk2
cf. http://en.wikipedia.org/wiki/Rounding
http://www.pldesignline.com/howto/showArticle.jhtml;?articleID=175801189,
który prowadzi do artykułu pt. "An introduction to different rounding
algorithms". Calc z OpenOffice.org oferuje możliwość skorzystania z
większości opisanych tam sposobów zaokrąglania, wystarczy poczytać
helpa.
W matematyce reguły zaokrąglania są niezmienne od lat - do 4 zaokrąglamy
w dół, od 5 zaokrąglamy w górę. Nie twórz nowej matematyki, a jeśli jest
ci to potrzebne z jakichś powodów, rób to ręcznie.
Tak więc Calc działa prawidłowo.
A jaki jest system zaokrąglania w Stanach Zjednoczonych?
Matematyka jedno a sposób zaokraglania drugie. To że się zaokrągla z 5-tą w
górę to nie znaczy że jest to jedyny sposób.
--
pozdrawiam, GG i SkyPe w X-nagłówku posta, e-mail: zmień "wpw" na "wp"
piotr "Uśmiechnij się, śmiech to zdrowie"
wzk2
2006-07-25 13:41:13 UTC
Permalink
Post by JMM
algorithms". Calc z OpenOffice.org oferuje możliwość skorzystania z
większości opisanych tam sposobów zaokrąglania, wystarczy poczytać
helpa.
No wlasnie, ale tego "nieobciazonego" nie ma. W helpie tez nie ma.

JSz.
Piotr Kuliński
2006-07-25 21:34:37 UTC
Permalink
Roku Pańskiego 2006,
na alt.pl.openoffice,
Post by wzk2
Post by JMM
algorithms". Calc z OpenOffice.org oferuje możliwość skorzystania z
większości opisanych tam sposobów zaokrąglania, wystarczy poczytać
helpa.
No wlasnie, ale tego "nieobciazonego" nie ma. W helpie tez nie ma.
na szybko
=ZAOKR.GÓRA(38,755;2) -> 38,76
--
pozdrawiam
piotr, gg i skype w X-nagłówku posta, e-mail: zmień "wpw" na "wp"
Nie ma tego złego co by na dobre nie wyszło :)
Cyklista
2006-07-26 07:01:51 UTC
Permalink
Post by Piotr Kuliński
na szybko
=ZAOKR.GÓRA(38,755;2) -> 38,76
Nie bardzo! Wtedy zawsze i wszystko zaokrągla w górę
np.
=ZAOKR.GÓRA(38,751;2) -> 38,76
Piotr Kuliński
2006-07-26 13:21:00 UTC
Permalink
Post by Cyklista
Post by Piotr Kuliński
na szybko
=ZAOKR.GÓRA(38,755;2) -> 38,76
Nie bardzo! Wtedy zawsze i wszystko zaokrągla w górę
np.
=ZAOKR.GÓRA(38,751;2) -> 38,76
hm,
od zawsze zaokrąglałem w górę jeśli na końcu było 5 lub więcej,
często aby wykluczyć błędy zamieniałem numerik na string, obcinałem do
trzech miejsc po przecinku i dopiero na numerik i zaokrąglanie.
Nie stosowałem reguł typu jeśli 5-kę poprzedza parzysta zaokrąglij w dół w
przeciwnym wypadku w górę. Dopiero można dostać pier...lca :)

dla mnie logiczne
=ZAOKR.GÓRA(38,751;2) -> 38,76
czy też =ROUNDUP(38,751;2)
jesli chcesz w dół
=ZAOKR.DÓŁ(38,751;2) -> 38,75
czy też =ROUNDDOWN(38,751;2)
--
pozdrawiam, GG i SkyPe w X-nagłówku posta, e-mail: zmień "wpw" na "wp"
piotr "Najważniejsze to umieć wbić gwóźdź bez młotka"
Loading...