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

Conversão de tipos int.tryParse e double.tryParse

Boa noite,

Estou com erro nestas linhas de código:

            final  int numeroConta = int.tryParse(_controladorCampoNumeroConta);
            final double valor = double.tryParse(_controladorCampoValor);

****Erro: int.tryParse(controladorCampoNumeroConta); double.tryParse(controladorCampoValor);

Um valor do tipo 'int?' não pode ser atribuído a uma variável do tipo 'int' porque 'int?' é anulável e 'int' não é. final int numeroconta = int.tryParse (_controladorCampoNumeroConta);

3 respostas

Olá Carlos Leonel.

Seu problema é por causa do Null Safety do Dart.

O método tryParse pode retorna dois tipos de dados, que são int/double ou null (nulo), e sua variável só armazena um tipo de dado int/double.

Você precisar informar ao compilador que essa variável também pode receber null através da utilização do ponto de interrogação (Ex: int? e double?), ou deixar a tipo da variável implícito

Solução:
final int? numeroConta = int.tryParse(_controladorCampoNumeroConta.text);
final double? valor = double.tryParse(_controladorCampoValor.text);

ou (tipagem implícita)

final numeroConta = int.tryParse(_controladorCampoNumeroConta.text);
final valor = double.tryParse(_controladorCampoValor.text);

David, boa tarde.

Vou utilizar o ponto de interrogação já que o da tipagem implícita eu fiz mas também deu o mesmo problema.

Obrigado,

solução!

No final da linha que chama o controladorCampoNumeroConta voce tem tem que adicionar um .text que é pra ele puxar a string que fica dentro do controlador.

final numeroConta = int.tryParse(_controladorCampoNumeroConta.text);
final valor = double.tryParse(_controladorCampoValor.text);