Подскажите как в 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
.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Добрый деньПытаюсь решить одну задачу, надо, чтобы читались данные из файла
Есть задача: вводится просто строка с цифрами и пробелами и задача вычленить из неё цифры для последующих с ними манипуляций(желательно в int)Например...