C语言的浮点数到整数的转换会去掉小数部分,因此在取整之前加上0.5会时大于等于0.5的小数部分进位。
int ( x <0 ? x-0.5:x+0.5)
注意:因为取整的默认方式是截断,因此通常在将浮点数转换为整数的时候最好都使用显式的取整步骤。一不小心,就有可能将你认为的8.0转换成了7,因为它的内部表示可能是7.999999.
C语言的浮点数到整数的转换会去掉小数部分,因此在取整之前加上0.5会时大于等于0.5的小数部分进位。
int ( x <0 ? x-0.5:x+0.5)
注意:因为取整的默认方式是截断,因此通常在将浮点数转换为整数的时候最好都使用显式的取整步骤。一不小心,就有可能将你认为的8.0转换成了7,因为它的内部表示可能是7.999999.