gpt4 book ai didi

javascript - 如何制作更好的findGoodMax函数?

转载 作者:行者123 更新时间:2023-11-28 15:52:34 24 4
gpt4 key购买 nike

我有这个函数,我用它来找到仪表的良好最大值。

function findGoodMax(x) {
var y = Math.pow(10, x.toString().length - 1);
x = (x/y);
x = Math.ceil(x);
x = x*y;
return x || 10;
}

findGoodMax(33) //=> 40
findGoodMax(76) //=> 80
findGoodMax(543) //=> 600
findGoodMax(1734) //=> 2000

问题是:

findGoodMax(0.1)      //=> 100
findGoodMax(0.00001) //=> 1000000

如何修改函数来处理小数?

另外,我也想要

if (x > 10 && x < 100) {
x = 100;
}

对于其他小数位数也是如此,基本上应该四舍五入到最接近的 10 次方。

处理负数也很好,所以 -0.1 会输出 0,-0.01 会输出 -0.1,至少我认为这是有道理的。

最佳答案

类似这样的东西( fiddle :http://jsfiddle.net/wSkss/5/)?

var findGoodMax = function(num){
var s = num.toExponential().split('e');
//console.log(s);
var pow = parseInt(s[1]);
var isNegative = s[0][0] === "-";
if (isNegative) {
if (pow === 0 || pow === -1) {
return 0;
} else if (pow < 0) {
pow += 1;
}
return -Math.pow(10, pow);
} else {
return Math.pow(10, pow + 1);
}
}

test output:

33 : 100
76 : 100
543 : 1000
1734 : 10000
-543 : -100
-1734 : -1000
-0.00001 : -0.0001
0.00001 : 0.0001
-0.1 : 0
0 : 10
1 : 10
5 : 10
-5 : 0
-33 : -10

关于javascript - 如何制作更好的findGoodMax函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19966607/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com