2
respostas

Conversão string para double mantendo o que foi digitado

Por que ao inserir o valor 1.00 na conversão ele perde os zeros? Como fazer para mante-los ?

raio = double.Parse(Console.ReadLine(), CultureInfo.InvariantCulture);
2 respostas

Olá, Andre.

Nessa conversão você deve levar em consideração a cultura. Por exemplo no EUA eles usam o ' . ' (ponto) para representar as casas decimais e no BRA usamos a ' , ' (virgula). Então antes de converter para double você deve dar um substituir o ponto(.) pela virgula(,), para isso você deve usar o "replace".

Andre, bom dia!

Como você pode ler no link abaixo:

https://social.msdn.microsoft.com/Forums/pt-BR/45fdea21-dc2c-4680-acc8-1004b8121b85/doubleparse-com-2-decimais?forum=vscsharppt

Quando se trata de matemática 1.00 é igual a 1, sendo assim a linguagem deixa implícito que não é necessário a notação decimal, visto que ambos apresentam o mesmo valor

raio = Decimal.Round(Convert.ToDecimal(Console.ReadLine(),2);