类型“double”不是类型“String”的子类型

Dij*_*jon 4 dart flutter

当我尝试解析我的双精度值时,它给了我一个错误。Price 是一个字符串,我试图将其解析为双精度值,但是当我尝试这样做时,它给了我一个错误。我不知道为什么会收到此错误,因为 double.parse 会将价格变成双倍。

      price: double.parse(
        element.get('price'),
      ),
Run Code Online (Sandbox Code Playgroud)

错误是 未处理的异常:类型“double”不是类型“String”的子类型

Hut*_*yad 7

double.parse或者int.parse需要解析Strings。您的错误是因为传递的值不是字符串,而是实际上的双精度值。

在您的代码中更改此设置:

price: double.parse(element.get('price').toString()),
Run Code Online (Sandbox Code Playgroud)

那应该有效。您还可以使用以下方法增强它tryParse

price: double.tryParse(element.get('price').toString()) ?? 0,
Run Code Online (Sandbox Code Playgroud)

如果 double.parse 失败并返回 null,您的类\函数将抛出异常。但是 usingtryParse会尝试解析它,并接受 null,但如果这确实返回 null,则通过为其分配值 0 来处理它。