gpt4 book ai didi

language-agnostic - 将值四舍五入到最接近 45 度的最简洁方法是什么?

转载 作者:行者123 更新时间:2023-12-01 09:55:05 25 4
gpt4 key购买 nike

我和 here 有同样的问题。
用户问:

I just wrote this to return the nearest 45 degree angle. Like 0, 45, 90, 135...

It feels like there must be a better way of doing this though. This is working fine but it looks messy.

    public function nearestDeg(degs:int):int {

if (degs >= 0 && degs <= 45) {
if (degs <= 23) {
return 0;
}else {
return 45;
}
}

if (degs > 45 && degs <= 90) {
if (degs <= 68) {
return 45;
}else {
return 90;
}
}

if (degs > 90 && degs <= 135) {
if (degs <= 113) {
return 90;
}else {
return 135;
}
}

if (degs > 135 && degs <= 180) {
if (degs <= 158) {
return 135;
}else {
return 180;
}
}

if (degs > 180 && degs <= 225) {
if (degs <= 203) {
return 180;
}else {
return 225;
}
}

if (degs > 225 && degs <= 270) {
if (degs <= 248) {
return 225;
}else {
return 270;
}
}

if (degs > 270 && degs <= 315) {
if (degs <= 293) {
return 270;
}else {
return 315;
}
}

if (degs > 315 && degs <= 360) {
if (degs <= 338) {
return 315;
}else {
return 360;
}
}


return 0;

}
将值四舍五入到最接近 45 度的最简洁方法是什么?

最佳答案

我将值除以 45°,四舍五入,然后乘以 45°。伪代码:

deg = round(deg / 45) * 45;

假设: / 运算符返回浮点表示并且不执行整数除法。如果特定语言不这样对待它,则应明确处理(例如,您可以除以 45.0 而不是 45 )。

关于language-agnostic - 将值四舍五入到最接近 45 度的最简洁方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29865929/

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