About toFixed
Возвращает строку, содержащую это числовое значение, представленное в десятичной записи с фиксированной запятой, с дробными цифрами после десятичной запятой.Если FractionDigits не определен, предполагается 0.В частности, выполните следующие шаги:
Алгоритм Number.prototype.toFixed (fractionDigits)
: https://www.ecma -international.org / ecma-262 / 5.1 / # sec-15.7.4.5
Реализации разрешено расширять поведение toFixed для значений FractionDigits меньше 0 или больше 20. В этом случае toFixed не обязательно выдает RangeError для таких значений.
ПРИМЕЧАНИЕ Вывод toFixed может быть более точным, чем toString для некоторых значений, поскольку toString печатает только достаточно значащие цифры, чтобы отличить число от смежных числовых значений.
JSРабота вокруг
function fix(n, p) {
return (+(Math.round(+(n + 'e' + p)) + 'e' + -p)).toFixed(p);
}
let exampleA = fix(49.1175, 3);
let exampleB = fix(49.1775, 3);
let exampleC = fix(49.775, 2);
const random = Math.random();
console.log(exampleA);
console.log(exampleB);
console.log(exampleC);
console.log('Before:', random, 'After Custom =>', fix(random, 3), 'Default:', random.toFixed(3));
// 49.118
// 49.178
// 49.78
Требуемая точность
Я предлагаю просто перенести set precision
с C ++ на Node.JSМодуль.
- Вы можете просто подключить и использовать
child_process
также в Node.JS для вызова программы C ++ с аргументом и иметь C ++ запускает функцию для преобразования значения и вывода в консоль.