关于DecimalFormat用法详解

关于 DecimalFormat用法详解

Java 1.6 API中这样定义:

DecimalFormat 是 NumberFormat 的一个具体子类,用于格式化十进制数字。该类设计有各种功能,使其能够解析和格式化任意语言环境中的数,包括对西方语言、

阿拉伯语和印度语数字的支持。它还支持不同类型的数,包括整数 (123)、定点数(123.4),科学记数法表示的数 (1.23E4)、百分数 (12%) 和金额 ($123)。所有这些内容都可以

本地化。

API中说了这么长一串,什么意思呢?简单来说,DecimalFormat 是 NumberFormat 的一个具体子类,用于格式化十进制数字。至于怎样格式化,仔细听我道来:

特殊符号含义: 

 0           一个数字 

 #           一个数字,不包括 0 ,但是也得视情况而定

 .            小数的分隔符的占位符 

 ,            分组分隔符的占位符 

 ;            分隔格式,分隔正数和负数子模式。 

 -            减号或负号,自动在数字前加上负号。 

 %          将原结果乘以 100 和作为百分比显示(人家自动乘的哟,不用你管)

E 分隔科学计数法中的尾数和指数。在前缀或后缀中无需加引号。

例子:

请大家注意下面关于小数取舍的不同哟。

import java.text.DecimalFormat;
public class test {
    public static void main(String[] args) {
        double b;
        b=100.45;
        //保留一位小数,四舍五入
        System.out.println(new DecimalFormat("0.0").format(b));  //100.5
        //保留一位小数,四射无入
        System.out.println(new DecimalFormat("#.#").format(b));  //100.5
        b=11.0023;
        //保留两位小数,四舍五入
        System.out.println(new DecimalFormat("0.00").format(b));  //11.00
        //保留两位小数,四射五入,但当末尾位0时,自动忽略
        System.out.println(new DecimalFormat("#.##").format(b));  //11
        b=20000.23456;
        //格式化分隔数字
        System.out.println(new DecimalFormat("#,##,###.####").format(b)); //20,000.2346
        b=0.23365;
        //按百分制输出,保留两位小数
        System.out.println(new DecimalFormat("#.##%").format(b)); //23.36%
        b=0.23366;
        System.out.println(new DecimalFormat("#.##%").format(b)); //23.37%
        b=123.455;
        //将所有数字加上负号输出,保留两位小数
        System.out.println(new DecimalFormat("-#.##").format(b)); //-123.45
        b=-123.456;
        System.out.println(new DecimalFormat("-#.##").format(b)); //--123.46
        b=0.00235;
        //按科学计数法输出,保留两位小数
        System.out.println(new DecimalFormat("#.##E0").format(b)); //2.35E-3
        b=0.00236;
        System.out.println(new DecimalFormat("#.##E0").format(b)); //2.36E-3
    }
}


转载于:https://www.cnblogs.com/csdndreamer/p/5490639.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值