diff --git a/Modules/Applications/AppClassification/app/otbTrainVectorRegression.cxx b/Modules/Applications/AppClassification/app/otbTrainVectorRegression.cxx
index 91ec818be1321ec783381b3d0dad31e461ca099c..ac784a433a76f195102f9925340be5efb0e1ff0b 100644
--- a/Modules/Applications/AppClassification/app/otbTrainVectorRegression.cxx
+++ b/Modules/Applications/AppClassification/app/otbTrainVectorRegression.cxx
@@ -25,11 +25,11 @@ namespace otb
 namespace Wrapper
 {
 
-class TrainVectorRegression : public TrainVectorBase<float, int>
+class TrainVectorRegression : public TrainVectorBase<float, float>
 {
 public:
   typedef TrainVectorRegression Self;
-  typedef TrainVectorBase<float, int> Superclass;
+  typedef TrainVectorBase<float, float> Superclass;
   typedef itk::SmartPointer<Self> Pointer;
   typedef itk::SmartPointer<const Self> ConstPointer;
   
diff --git a/Modules/Applications/AppClassification/include/otbTrainVectorBase.hxx b/Modules/Applications/AppClassification/include/otbTrainVectorBase.hxx
index 447608d0c58057cf73592c8023462ae78e4c6cc0..1ca5375528660828fd33663b1c6aaeda13bdf156 100644
--- a/Modules/Applications/AppClassification/include/otbTrainVectorBase.hxx
+++ b/Modules/Applications/AppClassification/include/otbTrainVectorBase.hxx
@@ -306,9 +306,9 @@ TrainVectorBase<TInputValue, TOutputValue>
         input->PushBack( mv );
 
         if(cFieldIndex>=0 && ogr::Field(feature,cFieldIndex).HasBeenSet())
-          target->PushBack( feature.ogr().GetFieldAsInteger( cFieldIndex ) );
+          target->PushBack( feature.ogr().GetFieldAsDouble( cFieldIndex ) );
         else
-          target->PushBack( 0 );
+          target->PushBack( 0. );
 
         feature = layer.ogr().GetNextFeature();
         goesOn = feature.addr() != 0;