Подскажите как в C++ вводить __float128, потом вывести без знаков после точки
Вводить и выводить такие числа надо в виде строк.
Для перевод __float128
из/в строку можно использовать функции strtoflt128 и quadmath_snprintf, соответственно. Но это при условии, что вы используете GCC и вам доступна библиотека quadmath.
Пример:
#include <iostream>
#include <quadmath.h>
using namespace std;
int main()
{
int prec = 0;
string format("%.0Qf");
string in;
cin >> in; // считывание числа в виде строки
// перевод из строки в __float128
__float128 r = strtoflt128(in.c_str(), NULL);
r = sqrtq(r); // выполнение некоторых операций с числом
// подсчёт размера выходной строки, с учётом форматирования и точности
int n = quadmath_snprintf(NULL, 0, format.c_str(), prec, r);
if (n > 0) {
// выделение памяти под строку
string out(n + 1, '\0');
// перевод __float128 в строку, с учётом форматирования и точности
quadmath_snprintf(&out[0], out.capacity(), format.c_str(), prec, r);
// вывод результата в консоль
cout << out << endl;
}
return 0;
}
Число знаков после запятой, которые будут напечатаны, задаётся переменной prec
и числом перед точкой в строке форматирования вывода %.0Qf
.
Чтобы проект собрался, не забудьте указать линковщику опцию lquadmath
.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Добрый деньПытаюсь решить одну задачу, надо, чтобы читались данные из файла
Есть задача: вводится просто строка с цифрами и пробелами и задача вычленить из неё цифры для последующих с ними манипуляций(желательно в int)Например...