分割字符串时无效的double

时间:2020-10-27 12:08:22

标签: flutter dart

我在分割字符串FormatException时遇到此错误:无效的double

double planAvg = (double.parse(planlist[pos].total_amt).toString() / double.parse(planlist[pos].total_weight).toString()).toStringAsFixed(2);

这就是我的实现方式

planAvg == ""
    ? SizedBox()
    : Padding(
       padding: const EdgeInsets.only(top: 8.0),
       child: Text(
         "Avg : " +
         planAvg,
         style: TextStyle(
            fontSize: 17,
            fontWeight: FontWeight.normal,
         ),
        ),
      ),

如果有人可以请帮助

2 个答案:

答案 0 :(得分:0)

您正在将变换保持为两倍并一次又一次地返回。

假设这是一个字符串:planlist[pos].total_amt

String planAvg = (
    double.parse(planlist[pos].total_amt) / double.parse(planlist[pos].total_weight)
).toStringAsFixed(2);

因此,您要做的是将它们都转换为两倍,进行除法运算,然后返回到String。

相反,如果您希望获得双倍的回报,只需:

double planAvg = double.parse(planlist[pos].total_amt) / 
                 double.parse(planlist[pos].total_weight);
    

答案 1 :(得分:0)

这是您收到错误的原因:

  1. toString()方法将double值转换为String值。 /运算符不能与字符串一起使用。

  2. 由于最后使用的是toStringAsFixed(2),因此它将返回一个String值。因此,您不能将其存储在double变量中。

尝试一下:

String planAvg = (double.parse(planlist[pos].total_amt) / double.parse(planlist[pos].total_weight)).toStringAsFixed(2);