DecimalFormat格式化
对数字进行格式化,可以使用DecimalFormat对象
0:表示整数或小数部分时,实际数字整数超过模板位数不处理,不足则最左侧补0;小数部分超过模板位数截取,不足补0。
#:表示整数或小数部分时,实际数字整数位数超过或不够不做处理;小数位数超过模板位数截取,不足不补足。
0 阿拉伯数字
# 阿拉伯数字如果不存在就显示为空
. 小数分隔符或货币小数分隔符
- 减号
, 分组分隔符
E 分割科学技术法中的尾数和指数。在前缀和后缀中无需添加引号
% 乘以100并显示为百分数
\u2030 乘以1000并显示为千分数
\u00A4 货币记号,由货币符号替换。如果两个同时出现,则用国际货币符号替换。如果出现在某个模式中,则使用货币小数分隔符,而不使用小数分隔符
' 用于在前缀或或后缀中为特殊字符加引号,例如 "'#'#" 将 123 格式化为 "#123"。要创建单引号本身,请连续使用两个单引号:"# o''clock"
注意
1.整数:若是n个0,就从个位开始向高位填充,如果有值就是原来的值,没有就填充0。若都是#,没有实际意义,不管是几个#,最后的结果都是原来的整数。0和#配合使用,只能是"##00",不能是"00##",就是#在前0在后。实现是上面的合集。
2.小数:是可以保留小数点后几位的(几个0后或几个#)。若n个0,就是保留n位小数,小数不足的部分用0填充。 若n个#,就是保留n位小数,小数不足部分没有就是没有。
public class DecimalFormatTest { public static void main(String[] args) { double aa=1.123456789;//aa //一位整数 System.out.println(new DecimalFormat("0").format(aa));//1 //一个整数,两位小数 System.out.println(new DecimalFormat("0.00").format(aa));//1.12 //两个整数,三个小数,整数不足用0填充。 System.out.println(new DecimalFormat("00.000").format(aa));//01.123 //所有整数 System.out.println(new DecimalFormat("#").format(aa));//1 //百分比:两位小数 System.out.println(new DecimalFormat("#.##%").format(aa));//112.35% long bb = 123456789l; //科学计数法:小数点后五位。 System.out.println(new DecimalFormat("#.#####E0").format(bb));//1.23457E8 //科学计数方法:两位整数,小数点后四位。 System.out.println(new DecimalFormat("00.####E0").format(bb));//12.3457E7 //用逗号隔开。 System.out.println(new DecimalFormat(",###").format(bb));//123,456,789 //在字符串中嵌入格式 System.out.println(new DecimalFormat("显示的数据为###。").format(bb)); } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通