Помощь - Поиск - Пользователи - Календарь
Полная версия: Большие числа
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Ада и другие языки
first_day
#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;
int main ()
{
long double a,b,c,max=0;
fstream f_in, f_out;
f_out.setf(ios::fixed);
f_out.precision(0);
f_in.open("input.txt",ios::in);
f_out.open("output.txt",ios::out);
f_in>>a>>b>>c;
max=a;
if (b>max)
max=b;
if (c>max)
max=c;
f_out<<max;
f_out.close();
return 0;
}



На тесте (189285 283 4958439238923098349024) Выдает 4958439238923098000000. Почему на конце нолики?..
volvo
Гарантированная точность представления long double - 15-16 цифр после запятой. Больше хранить негде. У тебя число читается в переменную и пытается хранится там в виде: 4.958439238923098349024*1022, причем то, что выделено красным - хранить негде, и оно отсекается...
first_day
Выход - сравнивать по-разрядно?

Или считать как строку?..
volvo
Но учти, строки надо будет привести к одинаковой длине, добавляя нули слева, потому что иначе 1234 будет меньше 32...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.