@genexus/web-standard-functions
Version:
GeneXus JavaScript standard functions library for web generators
61 lines • 1.91 kB
JavaScript
import { add } from "../math/add";
import { padLeft } from "../text/padLeft";
import { GxBigNumber } from "../types/gxbignumber";
import { roundBigNumber } from "./round";
/**
* Converts the given number to string
* @param {GxBigNumber} value
* @param {GxBigNumber} length
* @param {GxBigNumber} decimals
* @returns string
*/
export const strBigNumber = (value, length = new GxBigNumber(10), decimals = new GxBigNumber(0)) => {
let strNum = value.toString();
let decimalsAux = Number(decimals.toString());
let lengthAux = Number(length.toString());
let int = strNum.split(".").concat("")[0];
let decimal = strNum
.split(".")
.concat("")[1]
.slice(0, add(decimals, new GxBigNumber(1)));
let result;
if (decimal !== "") {
if (int.indexOf("-") !== -1) {
result =
"-" +
roundBigNumber(new GxBigNumber(int.replace("-", "") + "." + decimal), decimals).toString();
}
else {
result = roundBigNumber(new GxBigNumber(int + "." + decimal), decimals).toString();
}
}
else {
result = int;
}
let res;
if (result.length > lengthAux) {
if (decimalsAux === 0) {
res = padLeft("", lengthAux, "*");
}
else {
res = strBigNumber(value, length, new GxBigNumber(0));
}
}
else {
if (decimalsAux !== 0) {
int = result.split(".").concat("")[0];
decimal = result.split(".").concat("")[1];
if (decimal !== "") {
res = padLeft(int + "." + decimal.padEnd(decimalsAux, "0"), lengthAux, " ");
}
else {
res = padLeft(result, lengthAux, " ");
}
}
else {
res = padLeft(result, lengthAux, " ");
}
}
return res;
};
//# sourceMappingURL=str.js.map