使用0.5规则舍入浮点数的方法

Oli*_*ver 3 c floating-point objective-c rounding

我不能用普通的0.5规则来实现对浮点的舍入.
让我们准确一下......我怎么能做出这样的回合:

  • x.x2 - > xx
  • x.x5 - > xx(或x.x + 1也不错)
  • x.x6 - > x.x + 1

例如:

  • 1.12 - > 1.1
  • 1.22 - > 1.2

  • 1.15 - > 1.1(或1.2也好)

  • 1.25 - > 1.2(或1.3也好)

  • 1.16 - > 1.2

  • 1.26 - > 1.3

我尝试了这些方法(可能是以错误的方式):

  • NSNumberFormatter
  • NSDecimalNumber
  • ...

但没有什么可以给出这个结果.我总是得到一些x.x99999999的结果,或者非常圆润的结果(太高,低,或者当圆形数字应该出现在上面的数字时为偶数).

Tug*_*tes 7

试试这个:

round(x * 10.0f) / 10.0f
Run Code Online (Sandbox Code Playgroud)