Вы можете сделать это с помощью регулярного выражения и replace
(который вы уже используете для замены e+
на e
):
const str = variableName.toExponential().replace(/^(\d*\.\d{0,2})\d*e\+(\d+)$/, "$1e$2");
, который захватывает целую часть числа коэффициент плюс до двух дробных цифр, игнорирует любые другие и фиксирует полный показатель степени; он заменяет совпадение на $1$2
, поэтому у вас остаются только две цифры коэффициента:
function test(variableName) {
const raw = variableName.toExponential();
const str = raw.replace(/^(\d*(?:\.\d{0,2})?)\d*e\+(\d+)$/, "$1e$2");
console.log(variableName, "=>", raw, "=>", str);
}
test(2345);
test(100);
test(1019);
test(183947122);