Здравствуйте, почему переменная типа long double хранит данные с такой же точностью, как и переменная типа double?
#include <iostream>
#include <iomanip>
int main()
{
long double a = 1.4142135623730950488;
double b = 1.4142135623730950488;
std::cout << std::setprecision(20);
std::cout << "1.4142135623730950488\n";
std::cout << "long double: " << a << "\n";
std::cout << "double: " << b;
return 0;
}
Результат:
1.4142135623730950488
long double: 1.4142135623730951455
double: 1.4142135623730951455
Отличия от изначального числа и у long double и у double начинаются после 1.***095