#include <iostream>
using namespace std;
#include <cmath>
int main()
{
// Wiem, że funkcja pow przyjmuje argumenty typu double i zwraca wartość typu double
// ale chciałbym się dowiedzieć dlaczego program / funkcja
// tak się zachowuje z argumentami typu int i przypisaniem zwracanej wartości do zmiennej typu int
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; // 99 Dlaczego ???
cout << B << endl; // 100
cout << C << endl; // 100
cout << D << endl; // 100
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKI2luY2x1ZGUgPGNtYXRoPgoKaW50IG1haW4oKQp7CiAgICAvLyBXaWVtLCDFvGUgZnVua2NqYSBwb3cgcHJ6eWptdWplIGFyZ3VtZW50eSB0eXB1IGRvdWJsZSBpIHp3cmFjYSB3YXJ0b8WbxIcgdHlwdSBkb3VibGUKICAgIC8vIGFsZSBjaGNpYcWCYnltIHNpxJkgZG93aWVkemllxIcgZGxhY3plZ28gcHJvZ3JhbSAvIGZ1bmtjamEKICAgIC8vIHRhayBzacSZIHphY2hvd3VqZSB6IGFyZ3VtZW50YW1pIHR5cHUgaW50IGkgcHJ6eXBpc2FuaWVtIHp3cmFjYW5laiB3YXJ0b8WbY2kgZG8gem1pZW5uZWogdHlwdSBpbnQKICAgIGludCBBID0gcG93KCAxMCwgMiApOwogICAgaW50IEIgPSBwb3coIDEwLjAsIDIuMCApOwogICAgZG91YmxlIEMgPSBwb3coIDEwLCAyICk7CiAgICBkb3VibGUgRCA9IHBvdyggMTAuMCwgMi4wICk7CiAgICAKICAgIGNvdXQgPDwgQSA8PCBlbmRsOyAvLyA5OSBEbGFjemVnbyA/Pz8KICAgIGNvdXQgPDwgQiA8PCBlbmRsOyAvLyAxMDAKICAgIGNvdXQgPDwgQyA8PCBlbmRsOyAvLyAxMDAKICAgIGNvdXQgPDwgRCA8PCBlbmRsOyAvLyAxMDAKfQ==