Skip to content

Commit c0ef7ed

Browse files
Update 2008-10-24-dica-converter-string-para-decimal.md
1 parent 3c8d0a1 commit c0ef7ed

File tree

1 file changed

+101
-38
lines changed

1 file changed

+101
-38
lines changed

_posts/2008-10-24-dica-converter-string-para-decimal.md

Lines changed: 101 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -5,43 +5,106 @@ draft: false
55
tags: ['C#', 'C#', 'Dicas', 'Dicas', 'Visual Studio', 'Visual Studio']
66
---
77

8-
Olá caro leitor, em mais uma dica útil, principalmente para os iniciantes, vou ensinar como converter um valor do tipo String para Decimal.
9-
10-
Existe várias formas de realizar essa conversão. Esse exemplo se aplica aos demais tipos como: Int, DateTime, Float, etc.
11-
12-
Então veja que temos um valor do tipo String e queremos converte-lo para Decimal.
13-
Será atribuído o valor convertido a variável declarada **_preco2_** e a variável Booleana **_converteu_** retornará valor igual a True, ou seja, a conversão ocorreu com sucesso.
14-
```csharp
15-
string sPreco1 = "12,95"; decimal dPreco1;
16-
Boolean Convercao1 = decimal.TryParse(sPreco1, out dPreco1);
17-
```
18-
Mais tem um porem, suponhamos que esse valor em string não só possua somente numero mais também algum outro caracter como por exemplo uma letra. Então nesse caso ao tentarmos converter será retornado a variável **_preco2_** o valor igual a 0 (zero) e a variável Booleana **_converteu_** retornará valor igual a False, ou seja, a conversão não ocorreu. Em que caso podemos aplica-lo? Suponha que você ira realizar um calculo matemática, então realizamos a tratativa antes de executa-lo.
19-
```csharp
20-
string sPreco1 = "12,95";
21-
string sPreco2 = "6,76";
22-
decimal dPreco1;
8+
Olá, caro leitor! Hoje trago uma dica útil, especialmente para os iniciantes na programação em C#. Vamos aprender como converter um valor do tipo `String` para `Decimal`. Essa conversão é uma tarefa comum e pode ser realizada de várias maneiras. O exemplo que veremos aqui pode ser aplicado a outros tipos de dados, como `Int``DateTime``Float`, entre outros.
9+
10+
## Exemplo de Conversão
11+
12+
Suponha que temos um valor em formato de string e desejamos convertê-lo para decimal. Vamos atribuir o valor convertido a uma variável chamada `dPreco1` e utilizar uma variável booleana chamada `converteu` para verificar se a conversão foi bem-sucedida.
13+
14+
csharp
15+
16+
```csharp
17+
string sPreco1 = "12,95"; // Valor em formato de string
18+
19+
decimal dPreco1; // Variável para armazenar o valor convertido
20+
21+
bool converteu = decimal.TryParse(sPreco1, out dPreco1); // Tentativa de conversão
22+
```
23+
24+
Se a conversão ocorrer com sucesso, a variável `converteu` retornará `true`, e `dPreco1` conterá o valor decimal correspondente. Caso contrário, `dPreco1` será igual a 0, e `converteu` será `false`.
25+
26+
## Tratando Erros na Conversão
27+
28+
É importante considerar que, se a string contiver caracteres não numéricos, a conversão falhará. Por exemplo, se tentarmos converter uma string que contém letras, o resultado será 0 e a variável booleana indicará que a conversão não foi bem-sucedida.
29+
30+
csharp
31+
32+
```csharp
33+
string sPreco2 = "12,95abc"; // Valor inválido
34+
2335
decimal dPreco2;
24-
Boolean Convercao1 = decimal.TryParse(sPreco1, out dPreco1);
25-
Boolean Convercao2 = decimal.TryParse(sPreco2, out dPreco2);
26-
decimal result;
27-
if (Convercao1 && Convercao2) {
28-
result = decimal.Add(dPreco1, dPreco2);
29-
} else {
30-
result = 100;
31-
}
36+
37+
bool converteu2 = decimal.TryParse(sPreco2, out dPreco2); // Tentativa de conversão
3238
```
33-
Existe outras formar mais simples de realizar a conversão. Utilizando o Convert.ToDecimal()
34-
```csharp
35-
string sPreco1 = "12,95";
36-
decimal result = Convert.ToDecimal(sPreco1);
37-
```
38-
Utilizando o decimal.Parse()
39-
```csharp
40-
string sPreco1 = "12,95";
41-
decimal result = decimal.Parse(sPreco1);
42-
```
43-
Tá ai mais uma dica.
44-
Para realizar a conversão em outros tipo, é só seguir o mesmo conceito.
45-
Dúvidas? mande comentários.
46-
47-
Abraço e sucesso!
39+
40+
Neste caso, `converteu2` será `false`, e `dPreco2` será 0.
41+
42+
## Aplicando a Conversão em Cálculos
43+
44+
A conversão é especialmente útil quando precisamos realizar cálculos matemáticos. Antes de executar qualquer operação, podemos verificar se a conversão foi bem-sucedida:
45+
46+
csharp
47+
48+
```csharp
49+
string sPreco1 = "12,95";
50+
51+
string sPreco2 = "6,76";
52+
53+
decimal dPreco1;
54+
55+
decimal dPreco2;
56+
57+
bool converteu1 = decimal.TryParse(sPreco1, out dPreco1);
58+
59+
bool converteu2 = decimal.TryParse(sPreco2, out dPreco2);
60+
61+
decimal resultado;
62+
63+
if (converteu1 && converteu2)
64+
65+
{
66+
67+
resultado = decimal.Add(dPreco1, dPreco2); // Realiza a soma
68+
69+
}
70+
71+
else
72+
73+
{
74+
75+
resultado = 100; // Valor padrão em caso de erro
76+
77+
}
78+
```
79+
80+
## Outras Formas de Conversão
81+
82+
Além do método `TryParse`, existem outras maneiras de realizar a conversão:
83+
84+
1. **Usando `Convert.ToDecimal()`**:
85+
86+
csharp
87+
88+
```csharp
89+
string sPreco1 = "12,95";
90+
91+
decimal resultado = Convert.ToDecimal(sPreco1);
92+
```
93+
94+
2. **Usando `decimal.Parse()`**:
95+
96+
csharp
97+
98+
```csharp
99+
string sPreco1 = "12,95";
100+
101+
decimal resultado = decimal.Parse(sPreco1);
102+
```
103+
104+
Essas abordagens são diretas, mas é importante lembrar que elas podem lançar exceções se a string não for um formato válido.
105+
106+
## Conclusão
107+
108+
Espero que esta dica tenha sido útil para você! A conversão de strings para decimais é uma habilidade essencial em programação, especialmente quando lidamos com dados financeiros. Se você tiver dúvidas ou sugestões, fique à vontade para deixar um comentário.
109+
110+
Abraço e sucesso em sua jornada de aprendizado em C#!

0 commit comments

Comments
 (0)