【问题标题】:How to get the data of TextFormField as a double in flutter如何在颤动中将TextFormField的数据作为双精度获取
【发布时间】:2022-01-21 05:46:56
【问题描述】:

我尝试使用 double.parse 将 TextFormField 的数据作为双精度:

double _pointsUsing = double.parse(pointsEdditingController.text);

但它会导致错误提示“在 null 上调用了方法 '>='”。 如果我尝试这样做:

double _pointsUsing = double.tryParse(pointsEdditingController.text);

它返回空值。

textformfield 文本值为:1,133.00

它还显示“尝试调用:

【问题讨论】:

  • 你能分享运行double _pointsUsing = ...的代码吗?我很想知道它发生在生命周期的哪个位置,以及pointsEdditingController 上是否有正在运行该代码的侦听器。另外,您能否展示一下您是如何实现pointsEdditingController 的?
  • 也许我应该以编程方式删除逗号?

标签: flutter dart double


【解决方案1】:

您需要从字符串中删除“,”,然后解析为双精度。

double _pointsUsing = double.parse(pointsEdditingController.text.replaceAll(",",""));

【讨论】:

    【解决方案2】:

    你可以这样做:

    print( double.tryParse('2,456.90'.replaceAll(",","")));
    

    【讨论】:

      【解决方案3】:

      在文本字段中使用键盘类型作为数字可能会对您有所帮助

      TextField(
                  decoration: new InputDecoration(
                  labelText: "Enter your number"),
                  keyboardType: TextInputType.number,
      );
          ```
      
      Then parse your data like this:-
      
      
      String textFieldData = pointsEdditingController.text.isEmpty ? "0" : pointsEdditingController.text;
      
      double _pointsUsing = double.parse(textFieldData);
      

      【讨论】:

        猜你喜欢
        • 2021-06-11
        • 1970-01-01
        • 1970-01-01
        • 2018-12-30
        • 1970-01-01
        • 1970-01-01
        • 2020-10-11
        • 2020-11-01
        • 2015-09-13
        相关资源
        最近更新 更多