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

Dart中如何修改NumberFormat分组分隔符实现110 700格式?

Java中用NumberFormat格式化数字为空格分隔的千分位形式

嘿,这个需求其实很好实现,核心就是自定义数字格式化的分组分隔符——把默认的逗号换成空格就行。下面给你两种靠谱的写法:

方法一:直接使用DecimalFormat自定义符号

这种方式更直接,适合明确知道格式化规则的场景:

import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;

public class NumberFormatExample {
    public static void main(String[] args) {
        double myNum = 110700.00;
        
        // 初始化符号对象,用来修改分隔符
        DecimalFormatSymbols symbols = new DecimalFormatSymbols();
        // 把千分位分组符设置为空格
        symbols.setGroupingSeparator(' ');
        
        // 定义格式化模式:#,### 表示每三位数字分组,小数部分不显示
        DecimalFormat formatter = new DecimalFormat("#,###", symbols);
        
        // 执行格式化
        String result = formatter.format(myNum);
        System.out.println(result); // 输出:110 700
    }
}

方法二:基于NumberFormat实例修改

如果你想复用系统默认的NumberFormat配置,只是替换分隔符,可以这么写:

import java.text.NumberFormat;
import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;

public class AnotherExample {
    public static void main(String[] args) {
        double myNum = 110700.00;
        
        // 获取系统默认的NumberFormat实例
        NumberFormat numberFormat = NumberFormat.getInstance();
        if (numberFormat instanceof DecimalFormat) {
            DecimalFormat decimalFormat = (DecimalFormat) numberFormat;
            // 获取当前的符号配置
            DecimalFormatSymbols symbols = decimalFormat.getDecimalFormatSymbols();
            // 替换分组符为空格
            symbols.setGroupingSeparator(' ');
            decimalFormat.setDecimalFormatSymbols(symbols);
            
            // 确保启用分组功能,并设置不显示小数部分
            decimalFormat.setGroupingUsed(true);
            decimalFormat.setMaximumFractionDigits(0);
            
            String result = decimalFormat.format(myNum);
            System.out.println(result); // 输出:110 700
        }
    }
}

关键说明:

  • setGroupingSeparator(' ')是核心操作,把默认的逗号分隔符换成了空格;
  • 设置setMaximumFractionDigits(0)是为了去掉原数字的.00小数部分,刚好得到你要的整数格式;
  • 两种方法本质都是修改DecimalFormatSymbols里的分组符,选哪种看你的场景需求就行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:19:15