diff --git a/CPP/analyzer.cpp b/CPP/analyzer.cpp
index 9d2659e194aff612ba7e9c2ed5ab69f45c7e5863..fef345f8226c6e858e96ec0572d2af4783b521b6 100644
--- a/CPP/analyzer.cpp
+++ b/CPP/analyzer.cpp
@@ -8,14 +8,14 @@ void Analyzer::append(const double & x){
   cumulative_square += x*x;
 }
 
-double Analyzer::get_average_cost(){
+long double Analyzer::get_average_cost(){
   if(cumulative_cost.empty())
     throw std::runtime_error("List is empty");
   return cumulative_cost.back()/cumulative_cost.size();
 }
 
-double Analyzer::get_variance(){
-  double mean, mean_square;
+long double Analyzer::get_variance(){
+  long double mean, mean_square;
   mean = get_average_cost();
   mean_square = mean * mean;
   return cumulative_square - mean_square;
diff --git a/CPP/analyzer.hpp b/CPP/analyzer.hpp
index 7eb9d04057b3e99e2d099cefe40c2ab68f683161..4772ff0ef47a9ee59603733e690feed8f52dfcaf 100644
--- a/CPP/analyzer.hpp
+++ b/CPP/analyzer.hpp
@@ -31,7 +31,7 @@ public:
      Complexité en temps/espace, meilleur cas : O(1)
      @returns la somme des coûts enregistrés dans cette analyse.
   */
-  double get_total_cost(){
+  long double get_total_cost(){
     return cumulative_cost.back();
   }
 
@@ -41,7 +41,7 @@ public:
      @param pos est l'indice de l'opération pour laquelle on veut connaître le coût amorti.
      @returns le coût amorti d'une opération.
   */
-  double get_amortized_cost(size_t pos){
+  long double get_amortized_cost(size_t pos){
     return (pos)? cumulative_cost.at(pos)/pos : cumulative_cost.at(pos); 
   }
 
@@ -50,21 +50,21 @@ public:
      Complexité en temps/espace, meilleur cas : O(1)
      @returns la moyenne des coûts de toutes les opérations enregistrées dans l'analyse.
   */
-  double get_average_cost();
+  long double get_average_cost();
 
   /**
      Renvoie la variance des coûts de toutes les opérations enregistrées dans l'analyse.
      Complexité en temps/espace, meilleur cas : O(1)
      @returns la variance des coûts de toutes les opérations enregistrées dans l'analyse.
   */
-  double get_variance();
+  long double get_variance();
 
   /**
      Renvoie l'écart-type des coûts de toutes les opérations enregistrées dans l'analyse.
      Complexité en temps/espace, meilleur cas : O(1)
      @returns l'écart-type des coûts de toutes les opérations enregistrées dans l'analyse.
   */
-  double get_standard_deviation(){
+  long double get_standard_deviation(){
     return std::sqrt(get_variance());
   }