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

Flutter/Dart中如何为单一位小数补前导零?求一行代码实现

在Flutter/Dart中实现指定的double格式化需求

可以通过正则表达式结合字符串替换一行代码实现,分两种场景处理:

场景1:处理double类型数字

由于double类型无法区分3.4和3.40(二者数值等价,toString()均输出3.4),格式化逻辑基于其字符串表现:

String formatDouble(double number) => number.toString().replaceAllMapped(RegExp(r'(\.\d)$'), (match) => '.0${match.group(1)!.substring(1)}');
  • 输入3.4 → 输出3.04:正则匹配到末尾的.4,替换为.04
  • 输入3.40(实际作为double等价于3.4) → 输出3.04;若希望这类情况保留3.4,则需改为处理原始输入字符串而非double类型

场景2:处理输入字符串(保留原始小数位数信息)

如果需要区分3.4和3.40,直接处理输入字符串更准确:

String formatDecimalString(String input) => input.replaceAllMapped(RegExp(r'(\.\d)$'), (match) => '.0${match.group(1)!.substring(1)}');
  • 输入"3.4" → 输出"3.04"
  • 输入"3.40" → 输出"3.40"(符合需求,保持原样)
  • 输入"5.123" → 输出"5.123"(小数部分超过一位,不处理)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 10:25:18