繁体   English   中英

Flutter中TextFormField中的浮点值格式

[英]floating value formatting in TextFormField in Flutter

我想对用户输入添加限制并强制输入小数值。 但是如果我输入 .5 它会导致无效的输入异常,但 0.5 可以正常工作。 但用户可以键入 0.5 而不是 0.5。 那么有没有办法呢。 这是我的代码:

inputFormatters: [
        FilteringTextInputFormatter.allow(RegExp(r"[0-9.]")),
        TextInputFormatter.withFunction((oldValue, newValue) {
          try {
            final text = newValue.text;
            if (text.isNotEmpty) double.parse(text);
            return newValue;
          } catch (e) {}
          return oldValue;
        }),
      ],

那是因为.5无法parse-able to double您可以添加此行
if(text.startsWith('.')) text = '0$text';
在 if 语句之前,所以代码变为:

try {
  String text = newValue.text;
  if (text.startsWith('.')) text = '0$text';
  if (text.isNotEmpty) double.parse(text);
  return newValue;
} catch (e) {}
return oldValue;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM