diff --git a/src/DlgRef/DlgRef_SpinBox.cxx b/src/DlgRef/DlgRef_SpinBox.cxx index 35bec55ba..2a595b12d 100644 --- a/src/DlgRef/DlgRef_SpinBox.cxx +++ b/src/DlgRef/DlgRef_SpinBox.cxx @@ -29,6 +29,7 @@ #include "DlgRef_SpinBox.h" #include +#include //================================================================================= // class : DlgRef_SpinBox() @@ -105,9 +106,22 @@ void DlgRef_SpinBox::RangeStepAndValidator(double min, double max,double step, QString DlgRef_SpinBox::PrintDoubleValue (double theValue, int thePrecision) { + const double prec = 1e-12; + QString aRes; aRes.setNum(theValue, 'g', thePrecision); + if ( prec > 0 ) { + int p = 0; + while ( p < thePrecision ) { + aRes.setNum( theValue, 'g', p++ ); + double v = aRes.toDouble(); + double err = fabs( theValue - v ); + if ( err > 0 && err <= prec ) + break; + } + } + // remove trailing zeroes QString delim( "." );