使用java.text.DecimalFormat类.
DecimalFormat df = new DecimalFormat("0,000.00");
具体参数可以参见API, 这里提供一部分
符号 位置 本地化? 含义
0 数字 是 阿拉伯数字
# 数字字 是 阿拉伯数字,如果不存在则显示为 0
. 数字 是 小数分隔符或货币小数分隔符
- 数字 是 减号
, 数字 是 分组分隔符
E 数字 是 分隔科学计数法中的尾数和指数。在前缀或后缀中无需加引号。
; 子模式边界 是 分隔正数和负数子模式
% 前缀或后缀 是 乘以 100 并显示为百分数
\u2030 前缀或后缀 是 乘以 1000 并显示为千分数
¤ (\u00A4) 前缀或后缀 否 货币记号,由货币符号替换。如果两个同时出现,则用国际货币符号替换。如果出现在某个模式中,则使用货币小数分隔符,而不使用小数分隔符。
' 前缀或后缀 否 用于在前缀或或后缀中为特殊字符加引号,例如 "'#'#" 将 123 格式化为 "#123"。要创建单引号本身,请连续使用两个单引号:"# o''clock"。
i = 4000000;
NumberFormat n = new DecimalFormat(("#,###.00");
System.out.println(n.format(i));
大致就是在NumberFormat 类或其子类中实现,自己查下API就是
DecimalFormat df = new DecimalFormat("#,###.00");
System.out.println(df.format(40000));