Skip to content

Commit 9fec25b

Browse files
author
jef
committedApr 15, 2011
fix #3606
git-svn-id: http://svn.osgeo.org/qgis/trunk/qgis@15706 c8812cc2-4d05-0410-92ff-de0c093fc19c

File tree

1 file changed

+19
-1
lines changed

1 file changed

+19
-1
lines changed
 

‎src/app/qgsfieldcalculator.cpp

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
#include "qgssearchstring.h"
1919
#include "qgsvectordataprovider.h"
2020
#include "qgsvectorlayer.h"
21+
2122
#include <QMessageBox>
2223

2324
QgsFieldCalculator::QgsFieldCalculator( QgsVectorLayer* vl )
@@ -192,7 +193,24 @@ void QgsFieldCalculator::accept()
192193
}
193194
else if ( value.isNumeric() )
194195
{
195-
mVectorLayer->changeAttributeValue( feature.id(), mAttributeId, value.number(), false );
196+
const QgsField &f = mVectorLayer->pendingFields()[ mAttributeId ];
197+
QVariant v;
198+
199+
if ( f.type() == QVariant::Double && f.precision() > 0 )
200+
{
201+
v = QString::number( value.number(), 'g', f.precision() );
202+
}
203+
else if ( f.type() == QVariant::Double && f.precision() > 0 && f.precision() == 0 )
204+
{
205+
v = QString::number( qRound( value.number() ) );
206+
}
207+
else
208+
{
209+
v = value.number();
210+
}
211+
212+
v.convert( f.type() );
213+
mVectorLayer->changeAttributeValue( feature.id(), mAttributeId, v, false );
196214
}
197215
else if ( value.isNull() )
198216
{

0 commit comments

Comments
 (0)
Please sign in to comment.