another problem with rounding, is you fell for the bankers rounding method. most people do until someone shows them what it is.
some languages (like c#) opted to make the default rounding method the "bankers rounding" method, which just means they round half numbers (0.5, 1.5, etc) to the nearest even number. it's not at all the rounding any of us were taught in school where we round half numbers to the nearest whole number away from zero.
this is what banker's rounding looks like:
-4.5 -> -4
-3.5 -> -4
-2.5 -> -2
-1.5 -> -2
-0.5 -> 0
0.5 -> 0
1.5 -> 2
2.5 -> 2
3.5 -> 4
4.5 -> 4
not at all what any of us expects.
-4.5 -> -5
-3.5 -> -4
-2.5 -> -3
-1.5 -> -2
-0.5 -> -1
0.5 -> 1
1.5 -> 2
2.5 -> 3
3.5 -> 4
4.5 -> 5
so it's best to avoid rounding altogether and use the language's string formatting methods, since that's the end result we want (a string).
in the case where you want to keep numbers (for a different mod) and need to round, you can get the "normal" rounding like so
float a = Math.Round(x, MidpointRounding.AwayFromZero);