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

Flutter如何将TextEditingController内容转换为double类型进行算术运算

TextEditingController输入转double实现算术计算的方案

你原有代码的问题在于没有从控制器中取出输入文本,也没有做字符串到数字的类型转换,正确实现方式如下:


基础实现(默认非法输入按0处理)

控制器定义

和你的原有定义保持一致即可:

final value1Controller = TextEditingController();
final value2Controller = TextEditingController();

计算函数实现

/// 两个输入值的求和计算
double calculateSum() {
  // 从控制器中获取输入字符串,转double,转换失败默认赋值0
  double v1 = double.tryParse(value1Controller.text) ?? 0.0;
  double v2 = double.tryParse(value2Controller.text) ?? 0.0;
  return v1 + v2;
}

/// 减法计算实现
double calculateSubtract() {
  double v1 = double.tryParse(value1Controller.text) ?? 0.0;
  double v2 = double.tryParse(value2Controller.text) ?? 0.0;
  return v1 - v2;
}

带输入校验的实现(主动抛出非法输入提示)

如果需要对用户输入做严格校验,不允许非法输入参与计算,可以用如下写法:

/// 严格模式计算,输入非法时抛出异常
double calculateSumStrict() {
  String text1 = value1Controller.text.trim();
  String text2 = value2Controller.text.trim();
  
  if (text1.isEmpty || text2.isEmpty) {
    throw Exception("输入值不能为空");
  }
  
  double? v1 = double.tryParse(text1);
  double? v2 = double.tryParse(text2);
  
  if (v1 == null || v2 == null) {
    throw Exception("请输入合法的数字");
  }
  
  return v1 + v2;
}

调用时可以捕获异常给用户做弹窗提示即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 21:45:03