I suggest that code for that:
public class MOEDA
    {
        public int umavez = 0;
        public string Calcular(string valor1, string valor2, int operacao)
        {
            string saida = "";
            int total = 0;
            int val1, val2;
            valor1 = valor1.Replace("$", ""); valor2 = valor2.Replace("$", "");
            valor1 = valor1.Replace(".", ""); valor1 = valor1.Replace(",", "");
            valor2 = valor2.Replace(".", ""); valor2 = valor2.Replace(",", "");
            valor1 = valor1.Trim(); valor2 = valor2.Trim();
            int.TryParse(valor1, out val1); int.TryParse(valor2, out val2);
            int calcular = 0;
            if (operacao == 1) { calcular = 1; }
            if (operacao == 2) { calcular = 2; }
            if (operacao <= 0) { calcular = 3; }
            if (operacao == 4) { calcular = 4; }
            if (operacao == 5) { calcular = 5; }
            switch (calcular)
            {
                case 1://soma
                    total = val1 + val2;
                    break;
                case 2://multiplicar
                    val2 *= operacao;
                    total = val1 + val2;
                    break;
                case 3://subtrair
                    if (val1 == val2)
                    {
                        total = val1 - val2;
                    }
                    else
                    {
                        if (val1 > val2)
                        {
                            total = val1 - val2;
                        }
                        else
                        {
                            if (val1 < val2)
                            {
                                total = val2 - val1;
                            }
                        }
                    }
                    break;
                case 4://porcentagem
                    float porcentagem = ((float)val2 / 100) * val1;
                    total = val1 + (int)porcentagem;
                    break;
                case 5://divisao
                    float v = (float)val1 / (float)val2;
                    total = (int)v;
                    break;
            }
            saida = total.ToString();
            saida = FormataMoeda(saida);
            return saida;
        }
        string FormataMoeda(string corpo)
        {
            string set = corpo.Replace("$ ", "");
            if (set.Length < 22)
            {
                set = set.Replace("$ ", "");
                set = set.Replace(".", "");
                set = set.Replace(",", "");
                switch (set.Length)
                {
                    case 3:
                        set = "$ " + set.Substring(0, 1) + "," + set.Substring(1, 2);
                        umavez = 1;
                        break;
                    case 4:
                        set = "$ " + set.Substring(0, 2) + "," + set.Substring(2, 2);
                        umavez = 1;
                        break;
                    case 5:
                        set = "$ " + set.Substring(0, 3) + "," + set.Substring(3, 2);
                        umavez = 1;
                        break;
                    case 6:
                        set = "$ " + set.Substring(0, 1) + "." + set.Substring(1, 3) + "," + set.Substring(4, 2);
                        umavez = 1;
                        break;
                    case 7:
                        set = "$ " + set.Substring(0, 2) + "." + set.Substring(2, 3) + "," + set.Substring(5, 2);
                        umavez = 1;
                        break;
                    case 8:
                        set = "$ " + set.Substring(0, 3) + "." + set.Substring(3, 3) + "," + set.Substring(6, 2);
                        umavez = 1;
                        break;
                    case 9:
                        set = "$ " + set.Substring(0, 1) + "." + set.Substring(1, 3) + "." + set.Substring(4, 3) + "," + set.Substring(7, 2);
                        umavez = 1;
                        break;
                    case 10:
                        set = "$ " + set.Substring(0, 2) + "." + set.Substring(2, 3) + "." + set.Substring(5, 3) + "," + set.Substring(8, 2);
                        umavez = 1;
                        break;
                    case 11:
                        set = "$ " + set.Substring(0, 3) + "." + set.Substring(3, 3) + "." + set.Substring(6, 3) + "," + set.Substring(9, 2);
                        umavez = 1;
                        break;
                    case 12:
                        set = "$ " + set.Substring(0, 1) + "." + set.Substring(1, 3) + "." + set.Substring(4, 3) + "," + set.Substring(7, 3) + "," + set.Substring(10, 2);
                        umavez = 1;
                        break;
                    case 13:
                        set = "$ " + set.Substring(0, 2) + "." + set.Substring(2, 3) + "." + set.Substring(5, 3) + "." + set.Substring(8, 3) + "," + set.Substring(11, 2);
                        umavez = 1;
                        break;
                    case 14:
                        set = "$ " + set.Substring(0, 3) + "." + set.Substring(3, 3) + "." + set.Substring(6, 3) + "." + set.Substring(9, 3) + "," + set.Substring(12, 2);
                        umavez = 1;
                        break;
                    ///-------------------------------------- Não reconhece 15 caracteres
                    case 15:
                        set = "$ " + set.Substring(0, 1) + "." + set.Substring(1, 3) + "." + set.Substring(4, 3) + "." + set.Substring(7, 3) + "." + set.Substring(10, 3) + "," + set.Substring(13, 2);
                        umavez = 1;
                        break;
                }
            }
            //-------------------------------------- Não reconhece 15 caracteres
            //-------------------------------------- Não reconhece 15 caracteres
            return set;
        }
        //---------------------------------------
        //---------------------------------------
    }
							
							
						 
Decimal is the easy-to-work field. O Microsoftly correct is: money and smallmoney http://msdn.microsoft.com/pt-br/library/ms179882.aspx
– Dorathoto
Decimal for sure.
– Matheus Miranda