java - 如何将十进制转换为以空格分隔千位

标签 java formatting decimal

我想将传入的 Double 转换为 String,其中有千位分隔符。

例如 159727,5 应为 159 727,5

这是我的代码:

public static String formatToHungraianNumber(Double toFormat) {
    logger.info("formatToHungraianNumber begin :" + toFormat);
    String formatted = toFormat.toString();
    try {
        DecimalFormatSymbols symbols = new DecimalFormatSymbols();
        symbols.setGroupingSeparator(' ');
        DecimalFormat format = new DecimalFormat("# ###,00", symbols);
        formatted = String.format("%14s", format.format(toFormat));
    } catch (Exception e) {
        logger.info("Runtime Exception", e);
        return formatted;
    }
    logger.info("Returned:" + formatted);
    return formatted;
}

返回 15 97 28,而不是 159 727,5 我见过这个question ,但我不希望我的结果被截断。我的代码有什么问题吗?

最佳答案

DecimalFormat format = new DecimalFormat("# ###,00", symbols);

应该是:

DecimalFormat format = new DecimalFormat("#,###.00", symbols);

DecimalFormat 的语法不变。仅输出发生变化。

关于java - 如何将十进制转换为以空格分隔千位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21990318/

相关文章:

java - 删除 map View 中除选定区域之外的所有其他区域

c# - 如何在 C# 中格式化美国和欧洲风格的数字?

sql - 使用 Shell 脚本和 SQL 查询的结果生成属性文件

python - 迭代列表以输出到表的 10 个空格的格式修饰符是什么?

Javascript从数字中去除小数

php - 在 MySQL 中将 HEX 列转换为 DEC

java - 如何获取面板的大小

java - 什么是 java.constructors.single()?

java - 如何按 id 对 ArrayList 进行排序并添加到 ArrayList ArrayList<ArrayList<DataPost>>

unix - 如何将十进制转换为二进制,反之亦然