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

Java中DecimalFormat("0.0")输出逗号替代小数点如何强制用点分隔

DecimalFormat默认会读取JVM的默认区域配置(Locale)来决定小数分隔符样式,你当前的系统区域配置默认小数分隔符为逗号,所以会出现不符合预期的输出,可通过以下方案强制使用小数点作为分隔符:

方案1:自定义格式符号(最灵活,不依赖区域配置)

直接修改DecimalFormat的小数分隔符配置,不管系统区域是什么都会强制使用小数点:

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

public class FormatTest {
     public static void main(String[] args) {
        // 自定义格式符号
        DecimalFormatSymbols symbols = new DecimalFormatSymbols();
        symbols.setDecimalSeparator('.');
        DecimalFormat df = new DecimalFormat("0.0", symbols);

        System.out.println(df.format(10.4));  // 输出 10.4
        System.out.println(df.format(100.5)); // 输出 100.5
        System.out.println(df.format(3000.3));// 输出 3000.3
    }
}

方案2:指定小数分隔符为点的区域规则

直接选择原生用小数点作为小数分隔符的区域(比如美国区域Locale.US)来创建格式化工具:

import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.util.Locale;

public class FormatTest {
     public static void main(String[] args) {
        // 直接指定使用美国区域规则,小数分隔符默认为点
        NumberFormat numberFormat = NumberFormat.getNumberInstance(Locale.US);
        DecimalFormat df = (DecimalFormat) numberFormat;
        df.applyPattern("0.0");

        System.out.println(df.format(10.4));  // 输出 10.4
        System.out.println(df.format(100.5)); // 输出 100.5
        System.out.println(df.format(3000.3));// 输出 3000.3
    }
}

全局生效方案(可选)

如果需要整个项目都强制使用小数点作为小数分隔符,可以在JVM启动参数中添加以下配置:
-Duser.language=en -Duser.region=US
如果是Maven项目,你可以在pom.xml的exec-plugin配置里添加该参数,或者在NetBeans的项目运行配置的VM选项中添加即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 19:06:03