If I have
(float)value = 10.50
and do
int new_value = (int)value
what rules will round number?
See Question&Answers more detail:osIf I have
(float)value = 10.50
and do
int new_value = (int)value
what rules will round number?
See Question&Answers more detail:osWhen a finite value of floating type is converted to an integer type, the fractional part is discarded (i.e., the value is truncated toward zero).
So in the case of -10.5
, it's converted to -10
.
C++11 4.9 Floating-integral conversions [conv.fpint]
An rvalue of a floating point type can be converted to an rvalue of an integer type. The conversion truncates; that is, the fractional part is discarded. The behavior is undefined if the truncated value cannot be represented in the destination type. [ Note: If the destination type is bool, see 4.12. —end note ]