Dziwna (?) sytuacja z funkcja pow
Ostatnio zmodyfikowano 2014-10-11 13:18
| Geniusz Temat założony przez niniejszego użytkownika | Dziwna (?) sytuacja z funkcja pow » 2014-10-09 21:35:02 Witam. Natchnąłem się na taką sytuacje podczas pisania programu i nie rozumiem dlaczego zmienna A ma wartość 99 zamiast 100. Mógłby mi to ktoś wytłumaczyć ? #include <iostream>using namespace std;
 
 #include <cmath>
 
 int main()
 {
 
 
 
 int A = pow( 10, 2 );
 int B = pow( 10.0, 2.0 );
 double C = pow( 10, 2 );
 double D = pow( 10.0, 2.0 );
 
 cout << A << endl;
 cout << B << endl;
 cout << C << endl;
 cout << D << endl;
 }
 
 | 
|  | 
| akwes | » 2014-10-09 21:40:19 | 
|  | 
| Geniusz Temat założony przez niniejszego użytkownika | » 2014-10-09 22:01:12 CodeBlocks 13.12  GNU GCC Czyli to zależy od kompilatora. 99
 100
 100
 100
 
 Process returned 0 (0x0)   execution time : 0.953 s
 Press any key to continue.
 
 | 
|  | 
| akwes | » 2014-10-09 22:04:26 Z ciekawości zapytam, jaki system? Linux? | 
|  | 
| Geniusz Temat założony przez niniejszego użytkownika | » 2014-10-09 22:06:13 Windows XP | 
|  | 
| akwes | » 2014-10-09 22:09:35 Znalazłem, że było na to kilka bugów w glibc (czyli bibliotece dostarczającej standardowych funkcji)libm. Musisz najprawdopodobniej poszukać po prostu nowej wersjiglibclibm (jak to wygląda dla CodeBlocks nie wiem, być może wystarczy pobrać nowszą wersję CB?). | 
|  | 
| Geniusz Temat założony przez niniejszego użytkownika | » 2014-10-11 13:18:32 Niesamowite jak zmienienie typu jednej zmiennej w programie z int na double zapobiegło wywalaniu błędu po kompilacji. Wersję CodeBlocks mam najnowszą, z tego co się orientuję. Co do tego libm to nie bardzo wiem skąd mogę to pobrać, żeby mieć pewność, że to jest odpowiednia wersja. | 
|  | 
| « 1 » |