fałszywa trzynastka ?
Ostatnio zmodyfikowano 2015-12-13 08:56
Geniusz Temat założony przez niniejszego użytkownika |
fałszywa trzynastka ? » 2015-12-12 23:49:12 Pamiętam, że już kiedyś miałem problem z funkcją pow, ale wtedy nie był on aż tak rażący. Dlaczego akurat przy 13 pojawiają się błędy ? Używam kompilatora dołączonego do Codeblocks 13.12 #include <iostream> #include <cmath>
using namespace std;
int main() { int W; W = pow( 11, 1 ) * 10; cout << W << endl; W = pow( 12, 1 ) * 10; cout << W << endl; W = pow( 13, 1 ) * 10; cout << W << endl; W = pow( 14, 1 ) * 10; cout << W << endl; cout << pow( 13, 1 ) << endl; W = pow( 13, 1 ); cout << W << endl; W *= 10; cout << W << endl; return 0; } |
|
pekfos |
» 2015-12-13 00:13:52 Niedokładność obliczeń i zapisu liczb. |
|
michal11 |
» 2015-12-13 01:07:34 Zamień int W na float W , i zobacz co się stanie. |
|
carlosmay |
» 2015-12-13 01:13:48 Funkcja std::pow() zwraca wartość typu double . |
|
Elaine |
» 2015-12-13 02:54:01 Bug w implementacji std::pow. Nie ma żadnego powodu, dla którego std::pow(13.0, 1.0) nie miałoby zwracać dokładnie 13.0. |
|
Geniusz Temat założony przez niniejszego użytkownika |
» 2015-12-13 08:56:30 michal11, pomogło, dzieki |
|
« 1 » |