Pular para o conteúdo principal

integer_literal_imprecise_as_double

Detalhes sobre o diagnóstico 'integer_literal_imprecise_as_double' produzido pelo analisador do Dart.

The integer literal is being used as a double, but can't be represented as a 64-bit double without overflow or loss of precision: '{0}'.

Descrição

#

O analisador produz este diagnóstico quando um literal inteiro está sendo convertido implicitamente para double, mas não pode ser representado como um double de 64 bits sem estouro ou perda de precisão. Literais inteiros são convertidos implicitamente para double se o contexto exigir o tipo double.

Exemplo

#

O código a seguir produz este diagnóstico porque o valor inteiro 9223372036854775807 não pode ser representado exatamente como um double:

dart
double x = 9223372036854775807;

Correções comuns

#

Se você precisar usar o valor exato, então use a classe BigInt para representar o valor:

dart
var x = BigInt.parse('9223372036854775807');

Se você precisar usar um double, então altere o valor para um que possa ser representado exatamente:

dart
double x = 9223372036854775808;

Encontrou essa página sem tradução ou que precisa de correção? Abra uma issue e nos ajude a manter esse site em PT-BR para ajudar pessoas como você.