integer_literal_imprecise_as_double
整數文字正在被用作雙精度浮點數,但無法在不溢位或損失精度的情況下表示為 64 位雙精度浮點數:'{0}'。
描述
#當整數文字被隱式轉換為雙精度浮點數,但無法在不溢位或損失精度的情況下表示為 64 位雙精度浮點數時,分析器會生成此診斷。如果上下文需要型別 double,整數文字會被隱式轉換為雙精度浮點數。
示例
#以下程式碼會產生此診斷,因為整數值 9223372036854775807 不能精確地表示為雙精度浮點數
dart
double x = 9223372036854775807;常見修復
#如果你需要使用精確值,請使用 BigInt 類來表示該值
dart
var x = BigInt.parse('9223372036854775807');如果你需要使用雙精度浮點數,請將值更改為可以精確表示的值
dart
double x = 9223372036854775808;