Здравствуйте, господа.
Сегодня опять наткнулся на удивительную математику в программировании, а именно: при получении целой части числа выводиться бред. Вот собственно код:
#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
int main()
{
long double A, B;
int K;
cin >> A >> B >> K;
A = (A/B);
cout << setprecision(40) << fixed << A << endl;
A *= pow(10, K);
cout << setprecision(40) << fixed << A << endl;
K = int(A);
cout << K << endl;
K %= 10;
cout << K;
}
В нём на входе 3 числа, на выводе должно быть K цифра после запятой от деления A на B.
Вывод (с дебагом):
1 6 13
0.1666666666666666666711841757186896018084
1666666666666.6666667461395263671875000000000000000000
-2147483648
-8
Объясните пожалуйста