c - 打破平局以四舍五入到 c 中最接近的可表示 float ?

标签 c floating-point

试了几次还是不清楚。我们知道如果我们执行 float a = X.XXXX 并且数字不能用 float 表示,它会四舍五入到最接近的可表示数字。但问题是,如果向上舍入和向下舍入采用相同的距离怎么办?打破平局的一般规则是什么?

最佳答案

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

该标准定义了 5 种可能会用到的舍入模式。感兴趣的两种模式是:

  • 四舍五入到偶数(这是二进制 float 的默认值,也是十进制的推荐默认值)
  • 舍入到最接近的值,从零开始结

其他 3 个称为定向舍入模式:

  • 向零舍入
  • 四舍五入 - 无穷
  • 向无穷大舍入

关于c - 打破平局以四舍五入到 c 中最接近的可表示 float ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36999878/

相关文章:

CUDA 统一内存工作(具体来说,cudaMallocManaged();)

c++ - while循环中的浮点比较与模数

assembly - GCC 为 ARM 上的未对齐浮点访问生成程序集

Java: float 到十六进制和反转

c - C中的Scanf数组限制?

c++ - ncurses getch() 跳过每个第二个字符

c++ - 如何在我的 .c 文件中只包含几行头文件(只读文件)

c - 收到 Seg Fault 11 错误,但不知道原因

python - 为什么 float() 会切断尾随零?

c - 如何解释反三角函数(和 sqrt)函数(在 C 中)的浮点运算中的舍入误差?