Cześć wszystkim,
Ale dzisiaj złapałem zonka w C#. Panowie, sytuacja jest następująca - mam następujący kawałek kodu:
result = expressionPrefix * (component1 + component2 / component3 - component4);
wszystkie pola są typu double. Prosto z debuggera, analizuję przypadek dla poniższych wartości:
expressionPrefix = 0.2794
component1 = 2.7019
component2 = 3793075824206518
component3 = 1
component4 = 3793075824206518
Zwracam uwagę na to, że component2 = component4.
Jeśli policzyć to ręcznie, to z wyrażenia w nawiasie wychodzi 2.7019 (tyle co component1). Jednak debugger zwraca mi następującą wartość:
Jak się można domyślić, przez to całe wyrażenie ma niepoprawną wartość.
Dlaczego mój program nie potrafi tego policzyć?