|
Boost Users : |
Subject: [Boost-users] [Serialization] XML: float format is scientific instead of human-readable since Boost 1.57
From: Frank Stähr (staehr_at_[hidden])
Date: 2015-01-28 08:18:04
Hello Boost guys,
when I switched from Boost 1.55 to 1.57 there was a change in the
formation of floats and doubles for xml archives. Look at this example:
#include <fstream>
#include <boost/archive/xml_oarchive.hpp>
class MyClass
{
friend class boost::serialization::access;
template<class Archive>
void serialize(Archive & ar, const unsigned int version)
{
ar & boost::serialization::make_nvp("accuracy", accuracy);
}
double accuracy = 0.03;
};
int main()
{
MyClass obj;
std::ofstream ofs("sample.xml");
boost::archive::xml_oarchive oa(ofs);
oa & boost::serialization::make_nvp("myclass", obj);
}
I compiled it with VS 2013 for 32 bit. The output file has the line:
<m_accuracy>2.99999999999999990e-002</m_accuracy>
In Boost 1.55 it was much better human-readable: 0.03.
Is this behaviour (this change) intended? In any case, what is the best
way to format floats and doubles? (i. e. a manipulator for the ofstream?)
Thanks,
Frank
-- Frank Stähr Technische Universität Berlin Communication Systems Group Sekr. EN1 Einsteinufer 17 10587 Berlin, Germany
Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net