diff --git a/src/TNL/Experimental/Arithmetics/MultiPrecision.cpp b/src/TNL/Experimental/Arithmetics/MultiPrecision.cpp
index 048df5d7496ad6db7a5293e411aa884110d49098..69d269ee2ce376bb90c565dd9e6b396bb3cebf02 100644
--- a/src/TNL/Experimental/Arithmetics/MultiPrecision.cpp
+++ b/src/TNL/Experimental/Arithmetics/MultiPrecision.cpp
@@ -15,15 +15,16 @@ namespace Arithmetics {
 /* CONSTRUCTORS */
 
 MultiPrecision::MultiPrecision(){
-    mpf_init(number);
+    mpf_init (number);
 }
 
-MultiPrecision::MultiPrecision(int precision) {
-    mpf_set_default_prec(precision);
+MultiPrecision::MultiPrecision(int i){
+    signed long int sli = i;
+    mpf_init_set_si (number, sli);
 }
 
 MultiPrecision::MultiPrecision(double d){
-    mpf_init_set_d(number, d);
+    mpf_init_set_d (number, d);
 }
 
 /* OPERATORS IMPLEMENTATION */
@@ -138,6 +139,10 @@ bool MultiPrecision::operator==(const mpf_t &GMPnumber) const{
 
 /* METHODS */
 
+MultiPrecision MultiPrecision::setPrecision(int precision){
+    mpf_set_default_prec (precision);
+}
+
 void MultiPrecision::printMP(){
     int precision = mpf_get_default_prec();
     mpf_out_str(stdout, 10, precision, this->number); std::cout <<std::endl;
diff --git a/src/TNL/Experimental/Arithmetics/MultiPrecision.h b/src/TNL/Experimental/Arithmetics/MultiPrecision.h
index 8852a6a1b3d4da3e3157245609b4ea549a90b6ca..75af9712c8bca5f29649678b4c4ce36cf37d7a5e 100644
--- a/src/TNL/Experimental/Arithmetics/MultiPrecision.h
+++ b/src/TNL/Experimental/Arithmetics/MultiPrecision.h
@@ -22,8 +22,8 @@ public:
 
     /* CONSTRUCTORS */
     MultiPrecision(); // initialize number to 0
-    explicit MultiPrecision(int precision); // sets the default precision
-    explicit MultiPrecision(double d); // initialize number
+    explicit MultiPrecision(int); // assignment of signed long integer
+    explicit MultiPrecision(double d); // assignment of double
     /// TODO Constructor for Quad
 
     /* OPERATORS */
@@ -54,6 +54,7 @@ public:
     
     /* METHODS */
     void printMP();
+    static MultiPrecision setPrecision(int); // sets the default precision
     /// TODO void printNumber(int digits, ostream& str = std::cout );
 
     /* DESTRUCTOR */