TOPIC

Compilation Error, o que pode ser?

Rodrigo asked 1 year ago

Não sei o que pode ser, se alguem souber me da um help. resumindo, as constantes representam o valor maximo de cada taxa, eu subtraio elas do salario para calcular conforme sua propria regra, usando as funcoes.

using System;
using System.Globalization;

class URI
{
    static void Main(string[] args)
    {
        const double VALOR_ISENTO = 2000.00;
        const double VALOR_MAXIMO8 = 1000.00;
        const double VALOR_MAXIMO18 = 1500.00;

        bool isentoImposto = false;
        double imposto = 00.00;
        double salario = double.Parse(Console.ReadLine(), CultureInfo.InvariantCulture);

        if (salario > 00.00 && salario <= 2000.00)
        {
            isentoImposto = true;
        }
        else if (salario <= 3000.00)
        {
            CalculaImposto8();
        }
        else if (salario <= 4500.00)
        {
            CalculaImposto18();
        }
        else
        {
            CalculaImposto28();
        }

        if (isentoImposto == true)
        {
            Console.WriteLine("Isento");
        }
        else
        {
            Console.WriteLine("R$ " + imposto.ToString("F2", CultureInfo.InvariantCulture));
        }

        void CalculaImposto8()
        {
            salario -= VALOR_ISENTO;
            imposto = salario * 0.08;
        }

        void CalculaImposto18()
        {
            salario -= VALOR_ISENTO + VALOR_MAXIMO8;
            imposto = VALOR_MAXIMO8 * 0.08;
            imposto += salario * 0.18;

        }
        void CalculaImposto28()
        {
            salario -= VALOR_ISENTO + VALOR_MAXIMO8 + VALOR_MAXIMO18;
            imposto += VALOR_MAXIMO8 * 0.08;   
            imposto += VALOR_MAXIMO18 * 0.18;          
            imposto += salario * 0.28;
        }

    }
}

Remember not post solutions. Your post may be reviewed by our moderators.

  • Mister Cat replied 9 months ago

    Hola amigo! como você quebrei a cabeça durante horas, eu não saberia te dizer exactamente onde esta o problema mas se o meu codigo te ajuda seja bem vindo, eu fiz isso e deu certo, a mim estaba dando 5% worng. ai simplifiquei o maximo possivel e deu certo;

            if(sal <= 2000.0)
            {
                Console.WriteLine("Isento");
            }else if( 2000.0 < sal && sal <= 3000.0)
            {
    
                t8 = ((sal - 2000.00) * 0.08);
                Console.WriteLine("R$ " + String.Format("{0:F2}", t8));
    
            } else if (3000.0 < sal && sal <= 4500.0)
            {
    
                t18 = ((sal - 3000.00) * 0.18 + 1000.00 * 0.08);
                Console.WriteLine("R$ " + String.Format("{0:F2}", t18));
            }
            else
            {
    
                t28 = ((sal - 4500.00) * 0.28 + 1500.00 * 0.18 + 1000.00 * 0.08);
    
                Console.WriteLine("R$ " + String.Format("{0:F2}", t28));
    
            }
    
            Console.ReadLine();