メインコンテンツにスキップ

整数リテラルはdoubleとして不正確

整数リテラルがdoubleとして使用されていますが、オーバーフローまたは精度の低下なしに64ビットdoubleで表現できません: '{0}'。

説明

#

コンテキストがdouble型を必要とする場合、整数リテラルが暗黙的にdoubleに変換され、オーバーフローまたは精度の低下なしに64ビットdoubleで表現できない場合に、アナライザーはこの診断を生成します。

#

次のコードは、整数値9223372036854775807をdoubleとして正確に表現できないため、この診断を生成します。

dart
double x = 9223372036854775807;

一般的な修正

#

正確な値を使用する必要がある場合は、BigIntクラスを使用して値を表現してください。

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

doubleを使用する必要がある場合は、正確に表現できる値に変更してください。

dart
double x = 9223372036854775808;