-
- Downloads
Fix float precision (#649)
The issue is that numbers like 2.01 or 3.01 can not be precisely represented with binary floating point numbers. This replaces all occurrences of 'std::numeric_limits<T>::digits10 + 1' with 'std::numeric_limits<T>::max_digits10'. Background: Using 'std::numeric_limits<T>::digits10 + 1' is not precise enough. Converting a 'float' into a 'string' and back to a 'float' will not always produce the original 'float' value. To guarantee that the 'string' representation has sufficient precision the value 'std::numeric_limits<T>::max_digits10' has to be used.
Showing
- include/yaml-cpp/node/convert.h 1 addition, 1 deletioninclude/yaml-cpp/node/convert.h
- src/emitterstate.cpp 4 additions, 4 deletionssrc/emitterstate.cpp
- test/integration/emitter_test.cpp 6 additions, 6 deletionstest/integration/emitter_test.cpp
- test/node/node_test.cpp 44 additions, 38 deletionstest/node/node_test.cpp
Loading
Please register or sign in to comment