将浮点数转换为整数时如何舍入

How does Float round when converting it into integer

本文关键字:何舍入 舍入 浮点数 转换 整数      更新时间:2023-10-16

如果我有

(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。