Floating-point mindfuck
Czy ktoś jest w stanie wytłumaczyć jakie procesy matematyczne, księgowe i informatyczne tu zaszły nie usprawiedliwiając tego miejscowością wystawienia faktury?
nusch z- #
- #
- #
- #
- #
- #
- 13
- Odpowiedz
Czy ktoś jest w stanie wytłumaczyć jakie procesy matematyczne, księgowe i informatyczne tu zaszły nie usprawiedliwiając tego miejscowością wystawienia faktury?
nusch z>>> 30.42+25.99+164.67
221.07999999999998
Komentarze (13)
najlepsze
Problem jest w tym jak są reprezentowane pieniądze: niemal nigdy jako float, tylko jako 'scaled integer', zazwyczaj z czterema miejscami po przecinku. Fizycznie wygląda to tak, że 'monetą' systemu jest integer = 1/100 grosza. Wszystko jest wyliczane w tej monecie, a na końcu stawiany przecinek cztery pozycje od końca, a wyświetlane dwie po przecinku.
A więc nie ma zaokrąglania na 4 miejscu tylko zwyczajne operacje
20,22 x 1,85 =37,407
17,28 x 1,85 =31,968
43,65 x 4,64 =202,536
Sorry mialo byc @nusch
@taju: czy pierdoła to nie wiem, na pewno jedyną rozsądną metodą przechowywania pieniędzy jest ich wartość zapisywana w groszach (brak problemu z aproksymacją).
Tu jest więcej o metodzie liczenia: http://itpomocni.pl/przeliczenia-na-fakturach-vat/
Oni najprawdopodobniej mają o tyle zwalony algorytm, że wyświetlają kwoty dziesiętne z tolerancją do 2 miejsc, ale do dalszych wyliczeń zostawiają w pamięci kwoty z pierwotnych wyliczeń. Stąd te różnice.Pytanie tylko
Będę winna grosika.
Jedyną dziwną rzeczą jest to, że podstawę brutto do podatku wzięli o grosz niższą.