日期:2014-05-17  浏览次数:20735 次

怎么保留小数点后两位小数?
Object 类型 把它转换成 BigDecimal ,并且保留小数点后两位小数,如何做

   

Java code


        DecimalFormat df = new DecimalFormat("0.00");
        Object price = 2.3;
        try {
            str = df.format(price);
            System.out.println("-->"+str ) ;  // 结果是 2.30

                        // 这里开始转换为BigDecimal ,并且保留小数点后两位小数

            double value1 = Double.valueOf(str); // 先转换为Double 
            System.out.println("double str is "+value1); // 结果为 2.3 

            BigDecimal bb = new   BigDecimal(value1);
            System.out.println(price +" is 111 is "+bb) ; // 结果为 2.3 




怎么才能让结果是2.30呢?


------解决方案--------------------
BigDecimal b = new BigDecimal(value1);
double df = b.setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue();
------解决方案--------------------
Java code
package com.test;

import java.text.MessageFormat;

public class MyForamt {
    public static void main(String[] args){
        Object obj=2.3;
        
        System.out.println(
                MessageFormat.format("{0,number,#}",obj)
            );    
        System.out.println(
                MessageFormat.format("{0,number,#.#}",obj)
            );        
        System.out.println(
                MessageFormat.format("{0,number,#.00}",obj)
            );
        
    }
}

------解决方案--------------------
可能要进行一下四舍五入吧 lz试一下咯