计算最近的浮点值

时间:2012-09-27 17:04:02

标签: c floating-point

  

可能重复:
  How to convert floats to human-readable fractions?

我有一个浮点值说0.595781我希望使用仅使用整数分子和分母值的商来尽可能接近,这两个值都在0 to 1023 (10-bits)的范围内。

执行此操作的直观方式(至少开始)将使用595/10000.555提供相当接近的匹配(错误为0.040781)。

但是597/1002的匹配更好,即0.595808(错误为0.0000273)。也可能有更好的比赛。我通过以不连续的方式使用接近原始值的分子和分母值来达到第二个商。

然后我想知道是否有一种方法可以直接获得分子和分母整数值的所有标准。

如果需要设置两个整数值来设置Infineon XE167G device的波特率生成器。

任何想法都将不胜感激。 此致

1 个答案:

答案 0 :(得分:0)

如果您使用的是16-bit个整数,则可能只有numerator = 59578和分母只能保持功率因数10,例如5。所以答案是59578/(10^5)

使用这种方法,您至少可以保持4个精确位置。  只是一个想法...