gpt4 book ai didi

c - 四舍五入到给定值的最接近的倍数

转载 作者:行者123 更新时间:2023-12-04 08:03:36 25 4
gpt4 key购买 nike

如果我们有一个任意的 double值(value) f , 另一个 v和乘法因子 p ,如何捕捉值 f到最近的 v p的力量?
例子:

  • f = 3150.0
  • v = 100.0
  • p = 2

  • 乘法会像这样
  • 100 ( v )
  • 200(乘以 p)
  • 400
  • 800
  • 1600
  • 3200

  • ... f最接近 3200.0所以函数应该返回 3200.0这实际上有一个名称,我似乎已经忘记了,也许这就是我找不到这样一个功能的原因。

    最佳答案

    k = floor(log_p(f/v))哪里log_p(x) = log(x)/log(p)是以 p 为底的对数功能。它遵循 floor 的属性和 log那个p^k v <= f < p^(k+1) v ,它给出了与 f 最接近的两个值形式 p^n v .
    选择这两个值中的哪一个取决于您的用例中“最近”的确切定义。如果采用乘法(在对数刻度上很自然),则该“最近”值可以直接计算为 p^n v哪里n = round(log_p(f/v)) = round(log(f/v)/log(p)) .

    关于c - 四舍五入到给定值的最接近的倍数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66328250/

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