文档章节

Java保留两位小数的几种做法

jemlin
 jemlin
发布于 2016/12/02 11:15
字数 325
阅读 2
收藏 0

在平时做项目时,可能有这样的业务需求:页面或界面上展示的数据保留小数点后两位。 
为了达到这样的展示效果,本文列举了几个方法: 
1. 使用java.math.BigDecimal 
2. 使用java.text.DecimalFormat 
3. 使用java.text.NumberFormat 
4. 使用java.util.Formatter 
5. 使用String.format 

本文给出上述5种方法的简单实现。 
代码如下: 

    //使用BigDecimal,保留小数点后两位 
    public static String format1(double value) {  
        BigDecimal bd = new BigDecimal(value);  
        bd = bd.setScale(2, RoundingMode.HALF_UP);  
        return bd.toString();  
    }  

    //使用DecimalFormat,保留小数点后两位 
    public static String format2(double value) {  
        DecimalFormat df = new DecimalFormat("0.00");  
        df.setRoundingMode(RoundingMode.HALF_UP);  
        return df.format(value);  
    }  
  
    //使用NumberFormat,保留小数点后两位  
    public static String format3(double value) { 
        NumberFormat nf = NumberFormat.getNumberInstance();  
        nf.setMaximumFractionDigits(2);  
        //setMinimumFractionDigits设置成2,如果不这么做,那么当value的值是100.00的时候返回100 
//而不是100.00   
        nf.setMinimumFractionDigits(2);  
        nf.setRoundingMode(RoundingMode.HALF_UP);  
        //如果想输出的格式用逗号隔开,可以设置成true 
        nf.setGroupingUsed(false);  
        return nf.format(value);  
    }  
  
    //使用java.util.Formatter,保留小数点后两位   
    public static String format4(double value) {  
        //%.2f % 表示 小数点前任意位数 2 表示两位小数 格式后的结果为 f 表示浮点型         
        return new Formatter().format("%.2f", value).toString();  
    }  
  
    //使用String.format来实现.这个方法其实和format4是一样的 
    public static String format5(double value) {  
        return String.format("%.2f", value).toString();  
    }  

© 著作权归作者所有

共有 人打赏支持
jemlin
粉丝 0
博文 3
码字总数 1029
作品 0
厦门
Android工程师
私信 提问
如何把Java的double类型变量保留两位小数

用DecimalFormat 是可以保留两位小数,但类型是String Java对double小数点后如果有两个0,只会保留一个吗?

2017/08/21
349
4
freemarker 数字格式化深入理解

一、使用内建函数c 特点: 不管其表现形式是怎样的(例如"123,456.123,456"、"123456.123456"、"000123456.123456000"、"123,456.123456"、"1,2345,6.123456"),只要小数分割符是'.'它就能转...

毛朱
2013/01/24
0
0
Java在计算输出时怎样控制下精度值?

比如说,把PI的值设定为Pi=3.14,输出的时候希望结果也是保留两位小数的,但是我发现教程上讲Java本身就是不会输出精确值,比如程序for(int i=1;i<=5;i++){n+=0.1;System.out.println(n);},...

umiyo
2012/12/16
1K
4
java 两个整数相除保留两位小数

java中,当两个整数相除时,由于小数点以后的数字会被截断,运算结果将为整数,此时若希望得到运算结果为浮点数,必须将两整数其一或是两者都强制转换为浮点数。 例如: (float)a/b // 将整数...

浮躁的码农
2015/09/06
0
0
Jmockdata 2.3 发布,随机模拟 Java 数据

Jmockdta是一款实现模拟JAVA类型或对象的实例化并随机初始化对象的数据的工具框架。单元测试造数据的利器。 The plug-in of Jmockdata what through random algorithm mock java data. Jmock...

寻觅一只耳朵
2017/04/08
592
0

没有更多内容

加载失败,请刷新页面

加载更多

混合模型---logistic模型的混合

专家混合

中国龙-扬科
9分钟前
1
0
自定义参数校验注解 (实现ConstraintValidator方法)

Hibernate Validator常用注解(图网上找的) 2.自定义校验器 a.注解类 @Target({FIELD, METHOD, PARAMETER, ANNOTATION_TYPE})@Retention(RUNTIME)@Documented@Constraint(validatedB......

INSISTQIAO
12分钟前
1
0
Integer 实现

Integer 封装类型,参数传递传的是值,不是引用 内带缓存,-128 到127 -128 到127 直接数值 IntegerCache 如果不在这个范围,才会new Integer () public static Integer valueOf(int ...

Java搬砖工程师
13分钟前
1
0
数字IT基础-数据采集总线

数字化运营基础 在如今“双十一”不再是线上活动的代名词,而逐步变为一场线上线下同时进行的消费者盛宴。销售、运营、物流、生产商等都在开足马力在各大渠道备战,据统计: 消费者在期间被平...

阿里云官方博客
20分钟前
0
0
三次握手四次挥手

背景 和女朋友异地恋,为了保持感情我提议每天晚上视频聊天一次。 从好上开始,到现在,一年多也算坚持下来了。 问题: 有时候聊天的过程中,我的网络或者她的网络可能会不好,视频就会卡住,...

瑞查德-Jack
23分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部