toFixed без округления

106
12 февраля 2022, 10:10

Нужно оставить 4 символа после точки в float. Число number = 0.00028

number.toFixed(4); возвращает 0.0003. Мне нужно чтобы число не округлялось. Есть ли в js что-то готовое на такой случай? Или нужно функцию писать?

Answer 1

источник

Number.prototype.toFixedNoRounding = function(n) { 
  const reg = new RegExp(`^-?\\d+(?:\\.\\d{0,${n}})?`, 'g') 
  const a = this.toString().match(reg)[0]; 
  const dot = a.indexOf('.'); 
 
  if (dot === -1) { 
    return a + '.' + '0'.repeat(n); 
  } 
 
  const b = n - (a.length - dot) + 1; 
 
  return b > 0 ? (a + '0'.repeat(b)) : a; 
} 
 
console.log((3.1999).toFixedNoRounding(3)); // 3.199 
console.log((3.19923413412349).toFixedNoRounding(3)); // 3.199 
console.log((3.01).toFixedNoRounding(3)); // 3.010 
console.log((3.01).toFixedNoRounding(4)); // 3.0100 
console.log((3.01).toFixedNoRounding(5)); // 3.01000 
console.log((3).toFixedNoRounding(3)); // 3.000 
console.log((-3).toFixedNoRounding(3)); // -3.000 
console.log((0.00028).toFixedNoRounding(4)); // 0.0002

Answer 2

console.log( 
(0.00028).toFixed(5).replace(/.$/,'') // 0.0002 
)

Answer 3

function toFixedHard(number, x) {
  return parseFloat(number.toFixed(x + 1).slice(0, -1));
}
console.log( toFixedHard(0.2, 0) );
console.log( toFixedHard(0.128, 1) );
console.log( toFixedHard(0.228, 2) );
console.log( toFixedHard(0.4428, 3) );
console.log( toFixedHard(0.00028, 4) );
console.log( toFixedHard(0.000280003974, 11) );

Answer 4
const toFixedHard = (number, x) => {
    const s = String(number)
    let [ a, b = '' ] = s.split('.')
    return parseFloat(a + '.' + b.substring(0, x))
}
console.log( toFixedHard(6.997, 1) ); // 6.9
READ ALSO
Подключение content script в декларативном стиле

Подключение content script в декларативном стиле

Пытаюсь достучаться из расширения chrome к dom страницыДля этого создал два js-файла

135
Datatables-AltEditor ajax и select2 ajax

Datatables-AltEditor ajax и select2 ajax

Использую datatables-alteditor с select2

97
Перебор массива и вывод ключа

Перебор массива и вывод ключа

Есть select с записанными значениями из массиваНужно с помощью перебора вывести в какой части массива находится значение select

131
jQuery 1.9.0 - jQuery UI DatePicker

jQuery 1.9.0 - jQuery UI DatePicker

Создаю форму с кучей форм ввода даты datepickerов (вызов датепискеров onclick)

90