Создайте функцию, которая будет форматировать строку, чтобы всегда показывать две значащие цифры после десятичной дроби, без методов - PullRequest
0 голосов
/ 17 апреля 2020

Я пытаюсь отформатировать строку, чтобы показать два сиг-фига после десятичной дроби. Я хочу сделать это без использования встроенных методов, таких как «Математика» и тому подобное. У меня есть кое-что, где я могу это сделать, но проблема возникает, когда число просто «4,5», например, мне нужно добавить 0, но у меня возникли проблемы. Вот мой код.

function toFixed(num){
let elem = "";
// let x = "";
for (let i = 0; i < num.length; i++) {

  if(num[i - 2]  === '.'){  // num[i] happens to be the third 8

  break;
  }
  // elem += num[i];
elem += num[i];
elem += "0";

} 
return elem
}

console.log(toFixed("7.88888888")) // "7.88"
console.log(toFixed("77645345.987654")) //77645345.88
console.log(toFixed("1")) // "1.00"
console.log(toFixed("4.5")) // "4.50"

Сейчас я получаю 0 после каждого числа, которое кажется.

Ответы [ 2 ]

1 голос
/ 17 апреля 2020

Без Math:

function toFixed(num) {
  let [a, b = ""] = num.split(".");
  
  b += "00";
  
  return `${a}.${b.slice(0, 2)}`;
}

console.log(toFixed("7.88888888")) // "7.88"
console.log(toFixed("77645345.987654")) // "77645345.98"
console.log(toFixed("1")) // "1.00"
console.log(toFixed("4.5")) // "4.50"

Без каких-либо встроенных методов:

function toFixed(num) {
  const len = num.length;
  let result = "";    

  for (let i = 0; i < len; i++) {
    const c = num[i];
    
    if (c === ".") {
      return `${result}.${num[i + 1] || 0}${num[i + 2] || 0}`;
    }
    
    result += c;
  }
  
  return `${result}.00`;
}

console.log(toFixed("7.88888888")) // "7.88"
console.log(toFixed("77645345.987654")) // "77645345.98"
console.log(toFixed("1")) // "1.00"
console.log(toFixed("4.5")) // "4.50"
0 голосов
/ 17 апреля 2020
function toFixedNumber(num) {
    let elem = +num;
    return elem.toFixed(2)
}

console.log(toFixedNumber("7.88888888")) // "7.88"
console.log(toFixedNumber("77645345.987654")) //77645345.88
console.log(toFixedNumber("1")) // "1.00"
console.log(toFixedNumber("4.5")) // "4.50"

For your reference

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...