Как увеличить число с плавающей точкой на самый низкий ноль - PullRequest
0 голосов
/ 01 июля 2019

У меня есть число с плавающей запятой x, которое может быть любого размера, и мне нужно увеличить его значение на 1 по последнему нулю, поэтому .1 для 1.0, .01 для 2.00 и т. Д.

Следующий код работает для определенных номеров, но не для всех:

Javascript

let a = "0".repeat(floatNumber.length-2)+'1';
let position = floatNumber.indexOf(".");
let add = [a.slice(0, position), ".", a.slice(position)].join('');

1.1 становится 1,2.

но

10,1 становится 10,20. Мне нужен вывод 10.2.

Ответы [ 2 ]

1 голос
/ 01 июля 2019

Вы можете просто взять + увеличить последнюю цифру:

    const result = input.slice(0, -1) + (+input[input.length - 1] + 1);
0 голосов
/ 01 июля 2019

Я попробовал ваш код, добавление работает нормально. Я использовал parseFloat, так что, возможно, вам не хватает его, поскольку вы не добавили эту часть кода.

ИЗМЕНЕНО:

Я изменил фрагмент, так как он не поддерживал некоторые числа.теперь он выдаст желаемый результат ..

function floatNum(floatNumber){
  
  let position = floatNumber.indexOf(".");
  if(position == -1){
    return +floatNumber+1;
  } else {
    let len = floatNumber.length;
    let a = "0".repeat(len-2)+'1';
    let dec = len-position-1;
    let add = [a.slice(0, position), ".", a.slice(position)].join('');
    return (parseFloat(floatNumber) + parseFloat(add)).toFixed(dec);
  }
}
console.log(floatNum('0.01'))
console.log(floatNum('10.12'))
console.log(floatNum('1'))
console.log(floatNum('123'))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...