diff -up cxxtools-2.2.1/include/cxxtools/serializationinfo.h.than cxxtools-2.2.1/include/cxxtools/serializationinfo.h --- cxxtools-2.2.1/include/cxxtools/serializationinfo.h.than 2016-04-29 17:56:47.199954811 +0200 +++ cxxtools-2.2.1/include/cxxtools/serializationinfo.h 2016-04-29 17:59:22.002914734 +0200 @@ -181,9 +181,9 @@ class CXXTOOLS_API SerializationInfo { value = static_cast<unsigned long long>(_getUInt("unsigned long long", std::numeric_limits<unsigned long long>::max())); } #endif void getValue(float& value) const - { value = static_cast<float>(_getFloat("float", std::numeric_limits<float>::max())); } + { value = static_cast<float>(_getFloat("float", static_cast<long double>(std::numeric_limits<float>::max())*1.0000000000001)); } void getValue(double& value) const - { value = static_cast<double>(_getFloat("double", std::numeric_limits<double>::max())); } + { value = static_cast<double>(_getFloat("double", static_cast<long double>(std::numeric_limits<double>::max())*1.0000000000001)); } void getValue(long double& value) const { value = static_cast<long double>(_getFloat("long double", std::numeric_limits<long double>::max())); }