将浮点数转换为整数时如何舍入
How does Float round when converting it into integer
如果我有
(float)value = 10.50
并做
int new_value = (int)value
什么规则将四舍五入?
当浮点类型的有限值转换为整数类型时,小数部分将被丢弃(即,该值被截断为零)。
所以在-10.5
的情况下,它被转换为-10
。
C++11 4.9 浮积分转换
浮点类型的右值可以转换为整数类型的右值。转换蹦蹦跳跳;也就是说,小数部分被丢弃。如果无法在目标类型中表示截断的值,则未定义此行为。[ 注意:如果目标类型为 bool,请参见 4.12。
规则很简单:数字只是被截断到它的整数部分,在这种情况下,10
。小数部分被完全删除。这同样适用于负数:-10.5
将转换为 -10
。
转换为整数时,浮点数的小数部分被删除,这意味着浮点数 10.5 将转换为整数 10,浮点数 -10.5 将转换为整数 -10。
相关文章:
- C++将浮点指针值舍入为小数位数
- Boost::posix_time::ptime舍入到给定的分钟数
- 浮点定向舍入和优化
- 为什么输出精度没有正确舍入?
- 使用设置精度时如何阻止数字向上舍入?
- 如何在使用 MPFR 时在提升多精度中设置舍入模式
- OpenCV 细分一致的 Rect2f 到 Rect2i 舍入
- C++ 中的舍入函数
- 舍入 QDecDouble 值,精度最多为两个字符
- 将大 int 转换为浮点数,而不舍入 c++
- 舍入错误检测
- 根据浮点符号对浮点进行舍入的最简单方法是什么
- 将整数舍入到另一个整数的最接近的倍数
- Sizeof 舍入到对齐方式,但编译器仍将对象放在剩余的字节中
- 避免将 Int 转换为双重类型转换舍入
- 浮点数学运算后舍入不一致
- 浮动到绳子而无需舍入
- C++长双精度格式而不舍入
- 是否可以为 AVR 编写一个 constexpr 舍入函数?
- Time_T舍入到几分钟