gpt4 book ai didi

iphone - 在 Objective-C 中四舍五入到 (1, 2, or 5) x 10^n?

转载 作者:技术小花猫 更新时间:2023-10-29 10:22:51 26 4
gpt4 key购买 nike

是否有一种简单的方法可以将值四舍五入到最接近的(1、2 或 5)x 10^n,其中 n 是整数?如{..., .05 .1, .2, .5, 1, 2, 5, 10, 20, 50, 100...}

谢谢。

最佳答案

你可以用你的数字 nd=floor(log10(n)) 得到比例,然后除以 10 得到 d 将数字规范化到 [1.0,10.0) 的范围内。从那时起,它应该很容易四舍五入,因为可能性非常有限。完成后,将 d 乘以 10 以将数字恢复到原始范围。

下面的函数是用 C 写的,我对 Objective-C 的了解还不够,不知道这是否是惯用的。

double RoundTo125(double value)
{
double magnitude;
magnitude = floor(log10(value));
value /= pow(10.0, magnitude);
if (value < 1.5)
value = 1.0;
else if (value < 3.5)
value = 2.0;
else if (value < 7.5)
value = 5.0;
else
value = 10.0;
value *= pow(10.0, magnitude);
return value;
}

关于iphone - 在 Objective-C 中四舍五入到 (1, 2, or 5) x 10^n?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6364908/

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