Моя программа генерирует числовые данные для теста. Например, из-за проблем с плавающей запятой (предположительно) у = 1,5575 представляется у = 1,557499999999999. Здесь нет ничего удивительного. Но когда я хочу отобразить это число до 4 значащих цифр, y.toPrecision (4) возвращает «1.557», когда «правильное» значение должно быть 1.558. Я могу обойти эту проблему, дважды вызвав .toPrecision (), сначала с более высокой точностью:
console.log(y1); // 1.557499999999999
console.log(y1.toPrecision(4)); // 1.557 'wrong'
console.log((Number(y1.toPrecision(8))).toPrecision(4)); // 1.558 'correct'
Кто-нибудь знает более чистое решение этой проблемы?