【问题标题】:The type 'double' is not a subtype of type 'String'“double”类型不是“String”类型的子类型
【发布时间】:2021-09-18 20:13:15
【问题描述】:

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

      price: double.parse(
        element.get('price'),
      ),

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

【问题讨论】:

    标签: flutter dart


    【解决方案1】:

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

    在你的代码中改变这个:

    price: double.parse(element.get('price').toString()),
    

    应该可以。你也可以使用tryParse来增强它:

    price: double.tryParse(element.get('price').toString()) ?? 0,
    

    这是在 double.parse 失败并返回 null 的情况下,您的 class\function 将抛出异常。但是使用tryParse 会尝试解析它,并接受空值,但如果这确实返回空值,您将通过为其分配值 0 来处理它。

    【讨论】:

      猜你喜欢
      • 2020-10-30
      • 2021-04-21
      • 1970-01-01
      • 1970-01-01
      • 2020-03-18
      • 2020-12-04
      • 1970-01-01
      • 1970-01-01
      • 2021-02-05
      相关资源
      最近更新 更多