c# double rounding for xx.5 : Is it a good idea to write an extension method  for my application , and specify precision or is there any other good idea or other way to achieve **expected** results?

Due to the behavior of Convert.ToInt32 to truncate , I am doing something like **below** to achieve expected results 

> **Note:** Application requirement is to have percentages as **Integer** and not **decimals** eg 50.50 is 51 and not 50.5


        public decimal TotalScore { get; set; }

        public int TotalCount { get; set; }

        [DataMember(Name = "currentScore")]
        public int? CurrentScore
        {
            get
            {
                if (TotalCount > 0)
                {
                    //eg 0.8149863 * 100 = 81.50 ~ 82
                    //Convert.ToInt32 use Math.Truncate , so better to round it first
                    //default MidpointRounding.Toeven SO : 2.5 ~ 2 and 3.5 ~ 4
                    return Convert.ToInt32((Math.Round(Math.Round(TotalScore * 100, 2, MidpointRounding.AwayFromZero), MidpointRounding.AwayFromZero)) / TotalCount);


                }
                else
                {
                    return null;
                }
            }
            set
            {
                //Due to the fact WCF will fail with ReadOnly properties.
            }
        }
example:

`'0.8149863 * 100 = 81.50 ~ 82'`
`'0.2021111 * 100 = 20.21 ~ 20'` 
`'0.5889681 * 100 = 58.89 ~ 59'` 

> **Note:** The behavior for Math.Round is as expected when closer to '0' or '10' , but above double rounding is done specially for 'xx.5'(and works for other cases) **Convert.ToInt32** uses truncate and makes no expense in getting accurate results 

I need above behavior quiet a lot , so decided to write an extension as **below** , so to call the extension when calculating percentages on decimal and expecting integer value in return 

        /// <summary>
        /// 
        /// </summary>
        /// <param name="value"></param>
        /// <param name="count"></param>
        /// <param name="decimals">Number of decimal places </param>
        /// <returns></returns>
        public static int ToIntPercentageWithPrecision(this decimal value , int count , int decimals )
        {
            return Convert.ToInt32((Math.Round(Math.Round(value * 100, decimals, MidpointRounding.AwayFromZero), MidpointRounding.AwayFromZero)) / count);
        }

However above solution is not readable and looks confusing . Need a clean and readable solution with accuracy.