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());
Другие вопросы по тегам