Wpis z mikrobloga

Cześć! Mam za zadanie znaleźć takie liczby A,B,C typu double dla których nie zachodzi prawo łączności (A+B)+C = A+(B+C). Wiem że dla liczb zmiennoprzecinkowych nie zawsze ono zachodzi (ograniczenia arytmetyki zmiennoprzecinkowej), jednak w programie podając nawet szalone liczby typu 25.0e+30, 0.03e-40, -1e-30 wszystko liczy idealnie :/

Piszę w C++ i jakoś za cholerę nie mogę znaleźć takich liczb żeby zaszło jakieś zaokrąglenie, etc.

Co na to poradzić?

#programowanie #problem #cpp #metodynumeryczne
  • 30
@kuhar: Kompletnie nic

@sylwke3100: Dla tych też liczy mi idealnie.

Oczywiście gdy dodaję liczby np. 25000000.0, 0.00001, 24.0, to środkowa zostaje obcięta i suma jest 25000024.0, ale tak wychodzi zarówno po lewej stronie jak i po prawej :/