Converting a double to an int in C#

Because Convert.ToInt32 rounds:

Return Value: rounded to the nearest 32-bit signed integer. If value
is halfway between two whole numbers, the even number is returned;
that is, 4.5 is converted to 4, and 5.5 is converted to 6.

…while the cast truncates:

When you convert from a double or float value to an integral type, the
value is truncated.

Update: See Jeppe Stig Nielsen’s comment below for additional differences (which however do not come into play if score is a real number as is the case here).

Leave a Comment