如何以最低的零递增浮点数

时间:2019-07-01 04:58:55

标签: javascript math

我有一个浮点数x,它可以是任意大小,并且需要在最后一个零上将其值增加1,所以1.0代表.1,2.00代表.01,依此类推。

以下代码适用于某些数字,但不适用于所有数字:

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 个答案:

答案 0 :(得分:1)

您可以将+加到最后一位:

    const result = input.slice(0, -1) + (+input[input.length - 1] + 1);

答案 1 :(得分:0)

我尝试了您的代码,添加使用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'))