From d77c2489eef006c178fca32127ba49b070aa72b0 Mon Sep 17 00:00:00 2001 From: "mathias.chouet" <mathias.chouet@irstea.fr> Date: Wed, 16 Oct 2019 16:04:13 +0200 Subject: [PATCH] PABNombre: round N to integer if needed convert "N must be integer" error to "N was rounded" warning --- src/pab/pab_nombre.ts | 13 ++++++++++--- src/util/message.ts | 7 ++++++- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/pab/pab_nombre.ts b/src/pab/pab_nombre.ts index 27b76643..c26ee742 100644 --- a/src/pab/pab_nombre.ts +++ b/src/pab/pab_nombre.ts @@ -22,10 +22,10 @@ export class PabNombre extends Nub { } public Equation(sVarCalc: string): Result { + let rounded = false; if (sVarCalc !== "N" && ! Number.isInteger(this.prms.N.v)) { - const m = new Message(MessageCode.ERROR_PARAMDEF_VALUE_INTEGER); - m.extraVar.N = this.prms.N.v; - return new Result(m); + this.prms.N.v = Math.round(this.prms.N.v); + rounded = true; } let v: number; @@ -53,6 +53,13 @@ export class PabNombre extends Nub { const r = new Result(v, this); r.resultElement.values.DHR = DHR; + if (rounded) { + const m = new Message(MessageCode.WARNING_VALUE_ROUNDED_TO_INTEGER); + m.extraVar.symbol = "N"; + m.extraVar.rounded = this.prms.N.v; + r.resultElement.log.add(m); + } + return r; } diff --git a/src/util/message.ts b/src/util/message.ts index 32334e5e..3c128937 100644 --- a/src/util/message.ts +++ b/src/util/message.ts @@ -350,7 +350,12 @@ export enum MessageCode { /** * Des problèmes ont été rencontrés durant le calcul */ - WARNING_PROBLEMS_ENCOUNTERED + WARNING_PROBLEMS_ENCOUNTERED, + + /** + * La valeur du paramètre a été arrondie à l'entier + */ + WARNING_VALUE_ROUNDED_TO_INTEGER } /** -- GitLab