avoid_ js_ rounded_ ints
Detalhes sobre o diagnóstico 'avoid_js_rounded_ints' produzido pelo analisador do Dart.
Integer literal can't be represented exactly when compiled to JavaScript.
Descrição
#
O analisador emite este diagnóstico quando o valor de um literal int não
pode ser representado exatamente como um Number do JavaScript.
Quando código Dart é compilado para JavaScript, inteiros cujos valores estão
fora do intervalo -(2^53 - 1) a 2^53 - 1 podem ser arredondados para o
valor representável mais próximo. Isso altera silenciosamente o valor do
literal na web.
Para saber mais sobre como o Dart representa números em diferentes plataformas, incluindo quando compilado para JavaScript, consulte Números no Dart.
Exemplo
#
O código a seguir produz este diagnóstico porque
o literal 9007199254740993 (2^53 + 1) não pode ser
representado exatamente como um Number do JavaScript e é arredondado para
9007199254740992 em tempo de execução quando compilado para JavaScript:
final i = 9007199254740993;
Correções comuns
#
Se o valor precisar ser exato em todas as plataformas,
inclusive quando compilado para JavaScript,
use um BigInt para representá-lo:
final i = BigInt.parse('9007199254740993');
Salvo indicação em contrário, a documentação neste site reflete Dart 3.13.7. Relatar um problema.
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ê.