Flutter中如何将roundOneResult与roundTwoResult求和并显示为总结果?
Flutter中正确计算并展示两个数值的总和
你的问题出在Dart字符串插值的语法逻辑上:直接写$roundOneResult + $roundTwoResult时,Dart会将变量转字符串、加号本身、另一个变量转字符串这三部分直接拼接,不会执行加法运算。要让插值内的表达式生效,必须用${}把整个计算逻辑包裹起来。
解决方法一:直接在字符串插值中计算总和
修改Text组件的字符串内容,把加法表达式放进${}中:
Text( "Result Round 1: $roundOneResult and Round 2: $roundTwoResult Total = ${roundOneResult + roundTwoResult}", textAlign: TextAlign.center, style: const TextStyle( fontSize: 30, ), ),
解决方法二:提前计算总和变量(推荐,代码更易读)
如果需要复用总和结果,或者想让代码逻辑更清晰,可以在setState里先算出总和,再在Text中引用:
- 先在类中定义总和变量:
int totalResult = 0;
- 在按钮的
onPressed回调中计算总和:
ElevatedButton( child: const Text("Add"), onPressed: () { setState(() { roundOneFields.forEach((e) => roundOneResult = roundOneResult + int.parse(e.text)); roundTwoFields.forEach((e) => roundTwoResult = roundTwoResult + int.parse(e.text.toString())); // 计算两个结果的总和 totalResult = roundOneResult + roundTwoResult; }); }, ),
- 修改Text组件引用总和变量:
Text( "Result Round 1: $roundOneResult and Round 2: $roundTwoResult Total = $totalResult", textAlign: TextAlign.center, style: const TextStyle( fontSize: 30, ), ),
通过以上两种方式,就能正确展示两个数值相加的结果,而非字符串拼接的形式。
内容的提问来源于stack exchange,提问作者securityNVR NVR
相关产品推荐
相关产品推荐

