0020979: EDF 1168 GEOM: non coherence of display of decimal values

This commit is contained in:
vsr 2010-09-20 07:22:59 +00:00
parent e332fbdfc4
commit 851a66da48
2 changed files with 6 additions and 7 deletions

View File

@ -899,9 +899,9 @@ bool BasicGUI_PointDlg::execute( ObjectList& objects )
if ( GEOMBase::GetShape( anObj, aShape ) && !aShape.IsNull() &&
aShape.ShapeType() == TopAbs_VERTEX ) {
gp_Pnt aPnt = BRep_Tool::Pnt( TopoDS::Vertex( aShape ) );
myX->setText( QString( "%1" ).arg( aPnt.X() ) );
myY->setText( QString( "%1" ).arg( aPnt.Y() ) );
myZ->setText( QString( "%1" ).arg( aPnt.Z() ) );
myX->setText( DlgRef::PrintDoubleValue( aPnt.X() ) );
myY->setText( DlgRef::PrintDoubleValue( aPnt.Y() ) );
myZ->setText( DlgRef::PrintDoubleValue( aPnt.Z() ) );
}
else {
myX->setText( "" );

View File

@ -781,13 +781,12 @@ QString DlgRef::PrintDoubleValue( double theValue, int thePrecision )
if ( qAbs(theValue) < prec )
return "0";
QString aRes;
aRes.setNum( theValue, 'g', thePrecision );
QString aRes = QLocale().toString( theValue, 'g', qAbs( thePrecision ) );
if ( prec > 0 ) {
int p = 0;
while ( p < thePrecision ) {
aRes.setNum( theValue, 'g', p++ );
QString aRes = QLocale().toString( theValue, 'g', qAbs( p++ ) );
double v = aRes.toDouble();
double err = qAbs( theValue - v );
if ( err > 0 && err <= prec )
@ -796,7 +795,7 @@ QString DlgRef::PrintDoubleValue( double theValue, int thePrecision )
}
// remove trailing zeroes
QString delim( "." );
QString delim( QLocale().decimalPoint() );
int idx = aRes.lastIndexOf( delim );
if ( idx == -1 )