diff --git a/src/nub.ts b/src/nub.ts
index e1471dcef093daf9a4d499d400ea09e33cbb8562..0b3cf86cdd623d8a899530fefb128423709d4700 100644
--- a/src/nub.ts
+++ b/src/nub.ts
@@ -9,6 +9,11 @@ import { Result } from "./util/result";
 export abstract class Nub extends ComputeNode {
     private _dichoStartIntervalMaxSteps: number = 100;
 
+    /**
+     * résultat de Calc()/CalcSerie()
+     */
+    protected _result: Result;
+
     /*
      * paramétrage de la dichotomie
      */
@@ -36,17 +41,20 @@ export abstract class Nub extends ComputeNode {
             rInit = this._prms.map[sVarCalc].v;
         }
         if (this._prms.map[sVarCalc].isAnalytical()) {
-            return this.Equation(sVarCalc);
+            this._result = this.Equation(sVarCalc);
+            return this._result;
         }
 
         const resSolve: Result = this.Solve(sVarCalc, rInit, rPrec);
         if (!resSolve.ok) {
-            return resSolve;
+            this._result = resSolve;
+            return this._result;
         }
         const sAnalyticalPrm: string = this.getFirstAnalyticalParameter().symbol;
         this._prms.map[sVarCalc].v = resSolve.vCalc;
         const res: Result = this.Equation(sAnalyticalPrm);
         res.vCalc = resSolve.vCalc;
+        this._result = res;
         return res;
     }
 
@@ -71,4 +79,8 @@ export abstract class Nub extends ComputeNode {
         const target = this._prms.getFirstAnalyticalParameter();
         return dicho.Dichotomie(target.v, rPrec, rInit);
     }
+
+    public get result(): Result {
+        return this._result;
+    }
 }