我有一个浮点数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。
答案 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'))