在c中舍入到最接近可表示的浮点数的打破?

时间:2016-05-03 09:01:50

标签: c floating-point

尝试几次实验后仍不清楚。我们知道,如果我们执行float a = X.XXXX并且该数字不能由浮点数表示,则它将舍入到最接近的可表示数字。但问题是如果向上舍入和向下舍入需要相同的距离呢?打破平局的一般规则是什么?

2 个答案:

答案 0 :(得分:1)

它是实现定义的。假设IEEE 754:

该标准定义了5种舍入模式,可以使用这些模式。两种感兴趣的模式是:

  • 舍入到最近,与偶数相关(这是二进制浮点的默认值,小数推荐的默认值
  • 舍入到最近,与零相关

另外3个被称为定向舍入模式:

  • 向零舍入
  • 向无穷大方向前进
  • 向无穷大方向前进

答案 1 :(得分:0)

如果我没有弄错的话,的工作方式与陈述的here一样(粗体我的):

  

回合最近。   这是默认模式。除非特别需要其中一个,否则应该使用它。在此模式下,结果四舍五入到最接近的可表示值。 如果结果位于两个可表示的值之间,则选择偶数可表示。即使在这里也意味着最低位为零