Em uma leitura de arquivo de contas correntes, eu estou tendo que trocar o caracter de pronto '.' para o caracter de ',' pois se eu nao trocar o saldo nao aparece com casas decimais, alguem poderia me explicar o porque? segue o codigo:
static void LendoArquivoContas()
{
using (var arquivo = new FileStream("contasExportadas.csv", FileMode.Open))
using (var leitor = new StreamReader(arquivo, Encoding.UTF8)) // se nao colocado o Encoding, vai ser usado o encoding padrao;
{
while (!leitor.EndOfStream)
{
Console.WriteLine(ConverterStringParaContaCorrente(leitor.ReadLine()));
}
}
}
static ContaCorrente ConverterStringParaContaCorrente(string linha)
{
var campos = linha.Split(','); // divide a string pelo caracter passado no caso => ' ';
var agencia = campos[0];
var numero = campos[1];
var saldo = campos[2].Replace('.', ',');
var nomeTitular = campos[3];
var agenciaInt = int.Parse(agencia);
var numeroInt = int.Parse(numero);
var saldoDouble = double.Parse(saldo);
var resultado = new ContaCorrente(agenciaInt, numeroInt);
resultado.Depositar(saldoDouble);
resultado.Titular.Nome = nomeTitular;
return resultado;
}
Eu testei em string normal instanciando uma conta corrente e transformando o saldo em string e nao precisei trocar a virgula que ele ja apareceu o saldo com as casas decimais.