Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Não entendo porque o programa não aceita a virgula( C#)

Gostaria de uma ajuda por gentileza, estou aprendendo ainda o C# então acabei comprando dois cursos separados pra ter base solida e estou fazendo exercícios de lugares separados e nesta situação eu me deparei com algo curioso e que desejo muito resolver. Existe um site chamado "urionlinejudge" no qual há o exercício de numero 1009. É um exercicio basico e pra testar os conhecimentos, quando eu coloco as informações com "Ponto" que seria o separador decimal o calculo vai sem problemas entretanto se for digitado com "Virgula" como separador decimal acontece um erro. Se possível alguém com mais experiência poderia me ajudar por gentileza. Abaixo vou inserir as informações do qual eu colocaria como dono de uma loja com as informações devidas assim como o código.

//Faça um programa que leia o nome de um vendedor, o seu salário fixo e o total de vendas efetuadas por ele no mês (em dinheiro). Sabendo que este vendedor ganha 15% de comissão sobre suas vendas efetuadas, informar o total a receber no final do mês, com duas casas decimais.

//Informações que a pessoa colocaria no console: Nome: JOAO Salario: 500.00 Vendas: 1230.30

//Resposta Correta: TOTAL = R$ 684.54

using System;
using System.Globalization;

namespace URI_1009
{
    class Program
    {
        static void Main(string[] args)
        {

            string NomeVendedor;
            double SalarioFixo, VendasFeitas, Comissao;


            NomeVendedor = Console.ReadLine();
            SalarioFixo = double.Parse(Console.ReadLine(), 
            CultureInfo.InvariantCulture);


            VendasFeitas = double.Parse(Console.ReadLine(), 
            CultureInfo.InvariantCulture);

            Comissao = 0.15 * VendasFeitas + SalarioFixo;

            Console.WriteLine("TOTAL = R$ " + Comissao.ToString("F2",CultureInfo.InvariantCulture));
        }
    }
}

Desde já agradeço a atenção e ajuda, assim eu posso resolver os outros exercícios que tem esse problema de pontuação.

2 respostas

Olá David, tudo bem?

Fiz a utilização do Replace para conseguir chegar ao resultado que acredito que seja o que você procura.

Da uma olhada no código:

static void Main(string[] args)
        {
            string NomeVendedor;
            double SalarioFixo, VendasFeitas, Comissao;


            NomeVendedor = Console.ReadLine();
            SalarioFixo = double.Parse(Console.ReadLine().Replace('.', ','));


            VendasFeitas = double.Parse(Console.ReadLine().Replace('.', ','));

            Comissao = 0.15 * VendasFeitas + SalarioFixo;

            Console.WriteLine("TOTAL = R$ " + Comissao.ToString("F2".Replace('.', ',')));

            Console.ReadLine();
        }

Com o Replace, conseguimos substituir a cadeia de caractere e retornar uma nova cadeia de caracteres.

Poderia verificar se é isso que esperava? Espero que te ajude :)

Bons estudos!

solução!

Ana, muito obrigado por ter me ajudado novamente \o/ Sim, resolveu o problema, parou de dar aquele numero quebrado. Já posso usar virgula ou pontuação para casa decimal sem problemas.

Só tenho a lhe agradecer, espero que futuramente posso ajudar outros também.