我想将传入的 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/