Pugi XML: как установить точность для чисел с плавающей точкой
Я использую парсер pugi::XML и хочу установить точность чисел с плавающей запятой. Я уже использовал функцию округления для переменной float, но при печати с помощью pugi::xml она печатается с шестью десятичными цифрами.
Я использую приведенный ниже оператор для печати значения в C++ 11:
subNode.append_child (Pugi::node_pcdata).set_value(to_string(doubleVal).c_str());
Пример:
<value>97.802000</value>
должен быть напечатан как
<value>97.802</value>
Как я могу это сделать?
1 ответ
Решение
Попробуй это:
#include <iomanip> // setprecision
#include <sstream> // stringstream
std::string toStringPrecision(double input,int n)
{
stringstream stream;
stream << std::fixed << setprecision(n) << input;
return stream.str();
}
Тогда вы называете это в:
subNode.append_child(pugi::node_pcdata).set_value(toStringPrecision(doubleVal,3).c_str());