Jump to content

Recommended Posts

Posted

Boas, mais uma vez venho pedir o vosso auxilio. Estou a fazer uma calculadora de imposto muito básica que após a introdução do estado civil e do rendimento bruto anual, ele diz-me o imposto a pagar. Agora é que as coisas se complicam, o código está todo feito e funcional excepto quando eu digito um valor decimal no rendimento.... :S Alguém me pode ajudar? Obrigado  🙂

                      Solteiros

                     

Menor ou igual | Maior | Taxa de Imposto

21450                    -                  15%

51900                    -                  28%

    -                    51900              31%

                      Casados

                     

Menor ou igual | Maior | Taxa de Imposto

35800                    -                  15%

86500                    -                  28%

    -                    86500              31%

Module Module1

    Sub Main()

        Imposto()

    End Sub

    Sub Imposto()

        'Variáveis

        Dim estado_civil As String
        Dim rend As Double
        Dim imp As Integer
        Const taxa1 As Single = 0.15
        Const taxa2 As Single = 0.28
        Const taxa3 As Single = 0.31

        Console.WriteLine("Qual é o seu estado civil? (Solteiro/Casado)")
        estado_civil = Console.ReadLine()

        'Solteiro

        If estado_civil = "Solteiro" Then

            Console.WriteLine("Qual é o seu rendimento? ")
            rend = Console.ReadLine()


            Select Case rend

                Case Is <= 21450

                    imp = rend * taxa1

                Case 21450.01 To 51900

                    imp = rend * taxa2


                Case Is > 51900.01

                    imp = rend * taxa3



            End Select

        ElseIf estado_civil = "Casado" Then

            Console.WriteLine("Qual é o seu rendimento? ")
            rend = Console.ReadLine()

            Select Case rend
                Case Is <= 35800

                    imp = rend * taxa1

                Case 35800.01 To 86500

                    imp = rend * taxa2

                Case Is > 86500

                    imp = rend * taxa3


            End Select

        End If


        Console.WriteLine("O Valor do imposto é: " & imp)
        Console.ReadLine()

    End Sub

End Module
Posted

é assim este problema serve para calcular a taxa de IRS a pagar no fim do ano depois de introduzidos o estado civil e o salario bruto anual.

o programa funciona, mas quando introduzo salarios brutos decimais (Ex. 2341,50)€ o programa passa-se, dá me sempre um valor superior ao rendimento 🙂

Obrigado pela ajuda jpaulino

EDIT: Já percebi o problema, quando tava a correr o programa, estava a por 2343.02€ e não 2324,02€

ou seja o problema é da virgula.

Obrigado na mesma 😛

Posted

Ok, já entendi!

Isso depende da configuração do PC (definições regionais) em que o separador decimal é o ponto "." ou a virgula ",".

Se fizeres 2341.50 dá bem porque o teu separador decimal é o ponto.

Não te esqueças de alterar a variável para double!

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.