Я делал программу, которая сначала берет 2 числа (с плавающим типом данных) от пользователя, а затем спрашивает пользователя о том, какую цифру он хочет, чтобы получить число, разделенное и, наконец, делит его до этого числа и 'cout < <' it. Он скомпилирован, но не работал до отметки, когда я рассчитал 22/7, что является иррациональным. до 100 цифр он просто рассчитал до 30 или 40 цифр, а затем остальную часть заполнили нулями. Что-то вроде этого: 3.1428570747375488281250000000000000000000000000000000000000000000000000000000000000000000000000000000
setprecision() не работает как ожидалось
Вот мой код:
#include <iostream>
#include <cstdlib>
#include <iomanip>
using namespace std;
int main()
{
system("clear");
float y;
int z;
float x;
float a;
cout << "\nHello User\n";
cout << "\nEnter first num to be divided: ";
cin >> x;
cout << "\nCool!! Now enter the 2nd number: \n";
cin >> y;
cout << "\Exelent!! Enter the place upto which u wanna caculate: ";
cin >> z;
a = x/y;
cout << fixed << showpoint;
cout << setprecision(z);
cout << "Calculating......\n" << a << endl;
return 0;
}
Все номера с 6 или менее значащими десятичными цифрами могут быть преобразованы в значение с плавающей запятой IEEE 754 без потери точности. Прочитайте типы IEEE с плавающей запятой. –
22/7 определенно не является иррациональным числом. – molbdnilo
О, я имею в виду PI @molbdnilo – ShivamProgramer