Excel 2010 błąd dodawania?


(Lasinski Jacek) #1

Witam.

Mam problem z dodawaniem w Excelu 2010, mianowicie. Mam plik w który do wartości początkowej 1 z (19) miejscami po przecinku dodaje wartość 0,01 a potem dodaje to 0,01 do poprzedniej komórki. Na 129 linii zamiast wartości 2,28 otrzymuję 2,2799999999999900000. Czy jest to błąd Excela?

image.php?album_id=20&image_id=4360

Link do pliku Excela, http://wyslijto.pl/plik/zzrfltn645


(Jaahquubel_) #2

To błąd wynikający z reprezentacji liczby w postaci binarnej.

0,01 nie jest liczbą dwójkowo wymierną, czyli mając skończoną liczbę bitów da się jedynie przybliżyć wartość 0,01. Jakaś niedokładność być tu musi.

Po 128 dodawaniach jeden bit gdzieś przeskoczył i jest niedomiar.

Wpisz sobie

=((11/10)-1)*10-1

w arkuszu kalkulacyjnym i zobacz co się stanie. Powód jest ten sam.

W LibreOffice Twój plik działa tak samo, też jest ten błąd obliczeń.

Takie życie z obliczeniami numerycznymi.

Jak chcesz to obejść, to pomnóż najpierw te liczby przez 100, dodawaj po 1, a potem podziel przez 100.

Edit:

A w ogóle, to mogłeś wpisać w kolejnych komórkach 1; 1,01; 1,02; a potem przeciągnąć, żeby się uzupełniło ile chcesz i też by było OK (przynajmniej w LibreOffice'ie).


(Lasinski Jacek) #3

Jaahquubel_ , dzięki za wyjaśnienie. Jak przeciągam to jest ok.