Autor: roman_at_silesia.pik-net.pl
Data: Sun 24 May 1998 - 19:19:28 MET DST
Krzysztof Dusza wrote:
KD> Mam procesor Cyrix 150 MHz bez MMX.
KD> Podczas pisania programu w C++ zauważyłem,
KD> że obliczenia są nieprawidłowe.
LITOŚCI! Bierzesz się za programowanie, nie znając absolutnych _podstaw_!
KD> Z poczatku szukalem oczywiscie mojego bledu, ale nagle
KD> okazalo sie, ze to _processor_ sie myli !
TY SIĘ MYLISZ, wymagając od procesora nieskończonej dokładności.
KD> Oto źródło tego programu:
KD> double d = 0.0;
KD> d = d + 0.1;
[...]
KD> d = d + 0.1;
KD> d = d - 1.0;
KD> Tutaj "d" powinno byc rowne 0.
Tylko i wyłącznie na papierze!
KD> Niestety u mnie jest równe
KD> -1.11022e-016
KD> czyli inaczej:
KD> -0.000000000000000111022
I prawidłowo - a czego oczekiwałeś???? Błąd jest na 16-tym miejscu po
przecinku. Oczekujesz lepszej dokładności od typu double?
[...]
KD> Moze byc, ze tylko moj egzemplarz procesora jest wadliwy.
ROTFL!
-- RoMan (2:484/88_at_fidonet.org) mailto:roman_at_silesia.pik-net.pl
To archiwum zostało wygenerowane przez hypermail 2.1.7 : Tue 18 May 2004 - 17:18:00 MET DST