java - Java String.format 两位小数,点作为千位分隔符,逗号作为小数分隔符
问题描述
我需要格式化一个精确到小数位的浮点数,“。” 作为千位分隔符和“,”作为小数分隔符,如下所示:“1.234,56”
我已经尝试过String.format("%,f", myFloat)
,但它给了我太多这样的小数位:“1.150,000000”。另外,String.format("%,2f", myFloat)
也没有用。
解决方案
您可以尝试使用DecimalFormat类根据需要格式化您的数字:
float number = 12344.12f;
DecimalFormatSymbols symbols = new DecimalFormatSymbols();
symbols.setGroupingSeparator('.');
symbols.setDecimalSeparator(','); // to be sure it is ','
DecimalFormat decimalFormat = new DecimalFormat();
decimalFormat.setDecimalFormatSymbols(symbols);
decimalFormat.setMaximumFractionDigits(2);
String format = decimalFormat.format(number);
System.out.println(format);
输出是:
12.344,12
编辑
对于固定小数位试试这个:
DecimalFormatSymbols symbols = new DecimalFormatSymbols();
symbols.setGroupingSeparator('.');
symbols.setDecimalSeparator(','); // to be sure it is ','
DecimalFormat decimalFormat = new DecimalFormat("#.###.00");
decimalFormat.setDecimalFormatSymbols(symbols);
String format = decimalFormat.format(number);
推荐阅读
- awk - 为什么我需要在开始块中初始化变量
- c - 让用户定义数组的大小
- node.js - 需要从数组nodejs和mongodb中删除一个元素
- android - Room 中相同类型的两个不同 TypeConverter
- java - 如何覆盖子类中列的特征?
- python - 如何使用 Python Wand 修复奇怪的 IHDR 属性?
- vba - VBA如何根据字母数字模式的规则检查用户输入
- php - 如何将owncloud中包含ZZZZZ的文件列入黑名单?
- wordpress - 意外停用 wordpress 中的 Cloudflare 插件,现在网站无法加载
- jspdf - 如何检测高度jsPDF-AutoTable