我在分割字符串格式时出现此错误异常:无效的双
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,
),
),
),
如果有人能帮助
以下是出现错误的原因:
-
toString()
方法将double值转换为String值。/
运算符不能与Strings一起使用。 -
由于最后使用的是
toStringAsFixed(2)
,因此它会返回一个String值。因此,不能将其存储在双变量中。
试试这个:
String planAvg = (double.parse(planlist[pos].total_amt) / double.parse(planlist[pos].total_weight)).toStringAsFixed(2);
您将保持转换为两次和一次又一次。
假设这是一个字符串:planlist[pos].total_amt
String planAvg = (
double.parse(planlist[pos].total_amt) / double.parse(planlist[pos].total_weight)
).toStringAsFixed(2);
所以,您要做的是将它们都转换为double,进行除法运算,然后返回到String。
相反,如果你想要双倍回报,只需:
double planAvg = double.parse(planlist[pos].total_amt) /
double.parse(planlist[pos].total_weight);