Excel - greška u računanju

Excel - greška u računanju

offline
  • Pridružio: 19 Feb 2007
  • Poruke: 1740

У Ексцел табели у прилогу сам примијетио да ми се у колони Стање јавља цифра 1 на једанаестом децималном мјесту ако у колону Износ упишем негативни број мањи од 191. Зашто?
https://www.mycity.rs/must-login.png



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Milan
  • Pridružio: 17 Dec 2007
  • Poruke: 14468
  • Gde živiš: Niš

Skup realnih brojeva je beskonačan. Isti taj skup je potrebno predstaviti što preciznije konačnim skupom bitova u računarskom sistemu. Jasno je da u tom slučaju 100% preciznost nije moguća, te uvek postoji šansa za određenom greškom. Postoje razni tipovi brojevnih podataka, kao i razni sistemi za njihovu reprezentaciju. Postoji recimo standard IEEE 754 koji definiše aritmetiku u pokretnom zarezu. Njegova ideja je da se svaki realan broj može predstaviti kao proizvod <množioc> * <osnova brojevnog sistema>^<eksponent>. To je ujedno i najrasprostranjeniji sistem za reprezentaciju brojeva. E sad, u zavisnosti od toga koliko se bitova koristi za predstavljanje množioca, a koliko bitova za predstavljanje eksponenta (osnova brojevnog sistema je obično 10) zavisi i preciznost samog brojebnog sistema. Ako se više bitova koristi za množioc preciznost je veća, ali se zbog ograničenog eksponenta može predstaviti manji skup brojeva i obrnuto.

Najčešće implementacije su 32-bitne gde se za množilac koristi 24bitova i to garantuje preciznost do nekih 7 decimala. Postoji i sistem dvostruke preciznosti (engl. double), i on je 64-bitni sa množiocem od 53 bitova i on garantuje preciznost do nekih 13 decimala.

Dakle, od načina reprezentacije zavisi i nivo preciznosti tog konkretnog sistema. Ovo je posledica upravo tog problema.



offline
  • Pridružio: 19 Feb 2007
  • Poruke: 1740

У мом случају се ради о сабирању децималних бројева са двије децимале. Бројеви се уносе као такви и нема никаквог заокруживања, па нема говора о високој прецизности. Занима ме како се код сабирања таквих бројева појави некакво одступање на једанаестој децимали.
Податке из колоне Стање упоређујем са подацима у другој табели и од резултата зависи даља процедура. Ако ми са јави одступање на некој далекој децимали имаћу погрешну процедуру. Како онда вјеровати Ексцелу?

offline
  • PHP developer
  • Pridružio: 22 Mar 2006
  • Poruke: 3608
  • Gde živiš: 127.0.0.1

Jeste ovaj clanak na engleskom, ali prilicno dobro objasnjava problematiku. Najpoznatiji slucaj je sabiranje brojeva 0.1 i 0.2, koji daje rezultat tacno 0.30000000000000004 - odstupanje na sedamnaestoj decimali.

offline
  • Milan
  • Pridružio: 17 Dec 2007
  • Poruke: 14468
  • Gde živiš: Niš

Dakle upravo ono što sam ja pomenuo, zar ne?

offline
  • _Sale 
  • Prijatelj foruma
  • Pridružio: 30 Jul 2010
  • Poruke: 12195
  • Gde živiš: Z-moon

Napisano: 21 Jan 2020 20:00

Zanimljivo da na Excel aplikaciji za mobilni uređaj nema te greške o kojoj pišu u članku.



Dopuna: 21 Jan 2020 20:08

... čak i na računaru, kada pomenute brojeve staviš u mini-tabelu (van originalne):

offline
  • Milan
  • Pridružio: 17 Dec 2007
  • Poruke: 14468
  • Gde živiš: Niš

Napisano: 21 Jan 2020 20:16

Tako je. Zbog toga što u tabeli koju je micoboj okačio problematična ćelija nije običan zbir dve brojevne ćelije, već je u pitanju zbir brojevne ćelije i druge ćelije koja ima formulu, a ne broj. Excel je dovoljno pametan (ili u ovom slučaju glup Very Happy) da vrednosti ćelija sa formulama posmatra kumulativno, a ne da uzima njihove izračunate vrednosti. Tačnije, izračunata vrednost ćelije nije uvek ista onome što je prikazano, jer je vrednost koja je prikazana samo formatirana vrednost tog broja koji se nalazi ispod haube.

Što je taj lanac kalkulacija duži, jasno je da se povećava šansa da dođe do greške na nekoj decimali. Ustvari, nije to baš tako jednostavno, pošto se greške mogu i anulirati.

Dopuna: 21 Jan 2020 20:19

micoboj ::Како онда вјеровати Ексцелу?Formatiraš na broj decimala koji je od značaja i to je to.

offline
  • Fil  Male
  • Legendarni građanin
  • Pridružio: 11 Jun 2009
  • Poruke: 16195

Zaokružiš na nekoliko decimala:
https://support.office.com/en-us/article/round-fun.....e7f61a213c

Tako da neće biti odstupanja na 11-toj decimali.

offline
  • _Sale 
  • Prijatelj foruma
  • Pridružio: 30 Jul 2010
  • Poruke: 12195
  • Gde živiš: Z-moon

Ako je novac u pitanju, ionako više od dve decimale nemaju smisao.

Ko je trenutno na forumu
 

Ukupno su 562 korisnika na forumu :: 52 registrovanih, 7 sakrivenih i 503 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3028 - dana 22 Nov 2019 07:47

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: 8u47, A.R.Chafee.Jr., aramis s, cole77, darkangel, dok80, dule10savic, eaglemechanick, ekser222, Georgius2, goxin, Hektor2, ikan, jaeger, jumba, kaptain, komkom, Konda, kovinacc, kunktator, KUZMAR, lacko, madza, Mahovljani, maiden6657, Marko Marković2, Mercury2, MIg2, mikrimaus2, moldway, nebojsagogic, neno panic, PakleniVuk2, Petar35, Rakenica, repac2, Roman, royst33, ruseskij, sabros, Sale.S, saputnik plavetnila, Srna, suton2, VJ, vladetije, Voja1978, vradoje, vukdra, yrraf, zoranis, |_MeD_|