При привязке к реализации функции mySqrt в C ++ я использовал функцию exp () следующим образом:
int mySqrt(int x) {
// For x = 2147395600
cout << exp(0.5*log(x)) << " "; // It prints 46340
return exp(0.5*log(x)); // But returns 46339
}
Я попытался найти в Google причину такого поведения, но не смог найти что-нибудь. Я даже пробовал использовать double , но все тот же результат.
Любое объяснение этому?