Wpis z mikrobloga

@saimonm: Można i łatwo wyprowadzić na to dowód. Poszukaj w Google 1=0,(9) chodzi dokładnie o to samo. Ale masz rację że wynik powinien być podany jak najprostszy
  • Odpowiedz
@saimonm: To dajemy prosta: Najczęściej używany system reprezentacji liczb zmiennoprzecinkowych trochę się rozłazi jak masz duże składniki działania i małą różnice między nimi. Albo jak masz bardzo duży i bardzo mały składnik działania. To znany problem ale wszyscy go akceptują bo wyniki są dostatecznie dobre w większości przypadków. A na pewno w wszystkich przypadkach gdzie użycie darmowego kalkulatora z neta jest ok.
  • Odpowiedz
@saimonm: ch@#$ kalkulator - wyp#$% go, bo ktoś liczy na liczbach zmiennoprzecinkowych.

kalkulator na windows, MAC i Android liczy poprawnie - wynik jest prawidłowy - 0,12

a jak to Twoj kalkulator to poczytaj jak się liczy w finansach, czemu nie używać liczb typu real/double itp i jakich bibliotek trzeba użyć aby to obejść.

(np w python biblioteka Money)
każdy język ma kilka takich bibliotek do wyboru.
  • Odpowiedz
@saimonm: Zacznijmy od prostego przykładu. Jak napiszesz na standardowym (takim za 10 zł z targu) kalkulatorze 1/3, to dostaniesz 0,3333333. Następnie gdy to pomnożysz przez 3, dostaniesz 0,9999999. Problem się wziął stąd, że 1/3 to 0,(3), a kalkulator bierze pod uwagę tylko pewne skończone rozwinięcie tej liczby, w tym przypadku 7 cyfr.

Ale co to ma wspólnego z liczbą 0,12? Otóż komputery nie działają w systemie dziesiętnym, tylko binarnym. A liczba
  • Odpowiedz