X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FGUI%2FFGPUIDialog.cxx;h=3555d5039044645bf5888d72891769c6d3caa165;hb=b838691f50ecd639c9a6d8a675e8d8986d4f2b49;hp=9b2bc232a47087d536cede2d0fc0e58b3aeb36c8;hpb=6110139197f594f7703cb52235f1de63feb68745;p=flightgear.git diff --git a/src/GUI/FGPUIDialog.cxx b/src/GUI/FGPUIDialog.cxx index 9b2bc232a..3555d5039 100644 --- a/src/GUI/FGPUIDialog.cxx +++ b/src/GUI/FGPUIDialog.cxx @@ -491,9 +491,17 @@ copy_from_pui (puObject *object, SGPropertyNode *node) node->setIntValue(object->getIntegerValue()); break; case props::FLOAT: - case props::DOUBLE: node->setFloatValue(object->getFloatValue()); break; + case props::DOUBLE: + { + // puObject only provides float, not double, which causes precision/rounding issues + // with some numerical values (try "114.2"). + // Work around: obtain string value, and manually convert with proper double precision. + const char *s = object->getStringValue(); + node->setDoubleValue(atof(s)); + break; + } default: const char *s = object->getStringValue(); if (s)