UNPKG

@genexus/web-standard-functions

Version:

GeneXus JavaScript standard functions library for web generators

30 lines 1.5 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.roundToEvenBigNumber = void 0; const divide_1 = require("../math/divide"); const multiply_1 = require("../math/multiply"); const subtract_1 = require("../math/subtract"); const gxbignumber_1 = require("../types/gxbignumber"); const mod_1 = require("./mod"); const round_1 = require("./round"); /** * Rounds to even the given number to the specified number of decimal digits * @param {GxBigNumber} value * @param {GxBigNumber} digits * @returns GxBigNumber */ const roundToEvenBigNumber = (value, digits) => { let digitsAux = Number(digits.toString()); const multiplier = Math.pow(10, digitsAux || 0); const valToRound = (0, multiply_1.multiply)(value, new gxbignumber_1.GxBigNumber(multiplier)); let int = new gxbignumber_1.GxBigNumber(valToRound.toString().split(".")[0]); const decimalPart = (0, subtract_1.subtract)(valToRound, int); let rounded = (0, round_1.roundBigNumber)(valToRound, new gxbignumber_1.GxBigNumber(0)); if (gxbignumber_1.GxBigNumber.compare(decimalPart, new gxbignumber_1.GxBigNumber(0.5)) === 0 && gxbignumber_1.GxBigNumber.compare((0, mod_1.modBigNumber)(rounded, new gxbignumber_1.GxBigNumber(2)), new gxbignumber_1.GxBigNumber(0)) !== 0) { rounded = (0, subtract_1.subtract)(rounded, 1); } return (0, divide_1.divide)(rounded, multiplier); }; exports.roundToEvenBigNumber = roundToEvenBigNumber; //# sourceMappingURL=roundToEven.js.map