gpt4 book ai didi

javascript - js中十进制数的较大部分

转载 作者:行者123 更新时间:2023-11-30 08:28:43 25 4
gpt4 key购买 nike

我有这个问题:

编写一个接收十进制数的函数greaterpart。该数字应大于零。该函数需要识别十进制数的较大部分,无论是整数还是小数部分,然后提醒较大的部分。例如:

greaterpart(32.45) 警报 45

greaterpart(301.71) 警报 301

这是我的解决方案:

function graterpart(x){
if(x<0){
alert("Number can not be null");
}

else{
var x;
var y;
y= parseFloat(x);
var remainder = (y-Math.floor(y))*10000;
if(y>remainder){
alert(y);
} else{
alert(remainder);
}
}
}
graterpart(32.45);

但它没有正常工作。
我在这里做错了什么?提前致谢。

最佳答案

试试这个:

<script>
function greaterpart(x){
alert(Math.max.apply(this, x.toString().split('.')));
}
greaterpart(32.45);
</script>

Math.max() 会将 String.prototype.split() 返回的字符串隐式转换为数字。

如果您不理解该函数,请使用不同的步骤重新表述它:

将数字转成字符串:

x = x.toString();

在小数点处拆分:

var parts = x.split('.');  // Is now ["32", "45"]

获取最大值:

var greater = Math.max(parts[0], parts[1]);

但是还有更短的方法。请记住这一点:

var result1 = fun(arg1, arg2, arg3);
var result2 = fun.apply(thisValue, [arg1, arg2, arg3]);

第二行看起来有点复杂,但与第一行完全一样。您现在可以使用它来简化对 Math.max() 的调用:

var greater = Math.max.apply(this, parts);

现在用 console.log() 或 alert() 输出它。

关于javascript - js中十进制数的较大部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41056159/

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