@genexus/web-standard-functions
Version:
GeneXus JavaScript standard functions library for web generators
26 lines • 1.14 kB
JavaScript
import { divide } from "../math/divide";
import { multiply } from "../math/multiply";
import { subtract } from "../math/subtract";
import { GxBigNumber } from "../types/gxbignumber";
import { modBigNumber } from "./mod";
import { roundBigNumber } from "./round";
/**
* Rounds to even the given number to the specified number of decimal digits
* @param {GxBigNumber} value
* @param {GxBigNumber} digits
* @returns GxBigNumber
*/
export const roundToEvenBigNumber = (value, digits) => {
let digitsAux = Number(digits.toString());
const multiplier = Math.pow(10, digitsAux || 0);
const valToRound = multiply(value, new GxBigNumber(multiplier));
let int = new GxBigNumber(valToRound.toString().split(".")[0]);
const decimalPart = subtract(valToRound, int);
let rounded = roundBigNumber(valToRound, new GxBigNumber(0));
if (GxBigNumber.compare(decimalPart, new GxBigNumber(0.5)) === 0 &&
GxBigNumber.compare(modBigNumber(rounded, new GxBigNumber(2)), new GxBigNumber(0)) !== 0) {
rounded = subtract(rounded, 1);
}
return divide(rounded, multiplier);
};
//# sourceMappingURL=roundToEven.js.map