四舍五入到 1
Rounding numbers down to 1
我想做的是将左边的数字向下舍入为 1。例如,如果数字为 12345.6789,则向下舍入为 100000.0000。如果数字为 9999999.9999,则向下舍入为 1000000.0000。还希望它与小数一起使用,所以如果数字是 0.00456789,则将其向下舍入为 0.00100000。
在此示例中,5600/100000 = 0.056,我希望它四舍五入为 0.01。我在 LUA 脚本中使用了以下代码,它运行良好。
function rounding(num)
return 10 ^ math.floor((math.log(num))/(math.log(10)))
end
print(rounding(5600/100000))
但是如果我对 Javascript 使用相同的方法,它会 returns -11,而不是 0.01。
function rounding(num) {
return 10 ^ Math.round((Math.log(num))/(Math.log(10)))
}
console.log((rounding(5600/100000)).toFixed(8))
如有任何帮助或指导,我们将不胜感激。
您可以 floor log10 值并取回以 10 为底的指数值的值。
带零的小数位不能保存
const format = number => 10 ** Math.floor(Math.log10(number));
var array = [
12345.6789, // 100000.0000 this value as a zero to much ...
9999999.9999, // 1000000.0000
0.00456789, // 0.00100000
];
console.log(array.map(format));
检查此代码。它单独处理字符。它似乎完成了这项工作。
function rounding(num) {
const characters = num.toString().split('');
let replaceWith = '1';
characters.forEach((character, index) => {
if (character === '0' || character === '.') {
return;
};
characters[index] = replaceWith;
replaceWith = '0';
});
return characters.join('');
}
console.log(rounding(12345.6789));
console.log(rounding(9999999.9999));
console.log(rounding(0.00456789));
console.log(rounding(5600/100000));
我想做的是将左边的数字向下舍入为 1。例如,如果数字为 12345.6789,则向下舍入为 100000.0000。如果数字为 9999999.9999,则向下舍入为 1000000.0000。还希望它与小数一起使用,所以如果数字是 0.00456789,则将其向下舍入为 0.00100000。
在此示例中,5600/100000 = 0.056,我希望它四舍五入为 0.01。我在 LUA 脚本中使用了以下代码,它运行良好。
function rounding(num)
return 10 ^ math.floor((math.log(num))/(math.log(10)))
end
print(rounding(5600/100000))
但是如果我对 Javascript 使用相同的方法,它会 returns -11,而不是 0.01。
function rounding(num) {
return 10 ^ Math.round((Math.log(num))/(Math.log(10)))
}
console.log((rounding(5600/100000)).toFixed(8))
如有任何帮助或指导,我们将不胜感激。
您可以 floor log10 值并取回以 10 为底的指数值的值。
带零的小数位不能保存
const format = number => 10 ** Math.floor(Math.log10(number));
var array = [
12345.6789, // 100000.0000 this value as a zero to much ...
9999999.9999, // 1000000.0000
0.00456789, // 0.00100000
];
console.log(array.map(format));
检查此代码。它单独处理字符。它似乎完成了这项工作。
function rounding(num) {
const characters = num.toString().split('');
let replaceWith = '1';
characters.forEach((character, index) => {
if (character === '0' || character === '.') {
return;
};
characters[index] = replaceWith;
replaceWith = '0';
});
return characters.join('');
}
console.log(rounding(12345.6789));
console.log(rounding(9999999.9999));
console.log(rounding(0.00456789));
console.log(rounding(5600/100000));