You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何处理Flutter中TextFormField控制器空值相加触发数字解析错误的问题

解决方案

核心思路是用Dart内置的int.tryParse()替代int.parse(),前者转换失败时会返回null而非抛出异常,配合空判断运算符??即可把空值/非法输入直接转为0参与计算,避免报错。

修改后的代码如下:

sumHandler() {
  // 空输入/非数字输入自动转为0
  int numOne = int.tryParse(numOneController.text) ?? 0;
  int numTwo = int.tryParse(numTwoController.text) ?? 0;
  var totalPrecent = numOne + numTwo;

  if (totalPrecent == 100 && totalAmountController.text.isNotEmpty) {
    debugPrint(totalPrecent.toString());
    debugPrint(totalAmountController.text);
  } else {
    debugPrint("invalid input");
  }
}

补充说明

以上写法同时兼容用户输入非数字字符(比如字母、符号)的场景,也会自动转0不会抛异常。如果需要对非法数字输入做单独提示,可额外判断int.tryParse(numOneController.text) == null时触发对应提示逻辑即可。

内容的提问来源于stack exchange,提问作者FDjawid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 17:06:07