黑马程序员技术交流社区

标题: 如何保留float数小数点后两位 [打印本页]

作者: 王双宝    时间: 2012-7-12 13:48
标题: 如何保留float数小数点后两位
如何保留float数小数点后两位?我使用的方法如下:
public class Main {
        public static void main(String[] args){
               
                float f=(float)Math.random()*10;
        //        f=1234565;
                System.out.println(FormatFloat.format(f,2));
               
        }
}
class FormatFloat{
       
       
        public static float format(float f,int index){
                String str=String.valueOf((new   BigDecimal(f)).setScale(index,BigDecimal.ROUND_HALF_UP));
                return Float.parseFloat(str);
               
        }
}
但是这种存在一个问题,当f=123456是,打印出的是123456.0,只保留到小数点后一位。怎么才能打印出的是123456.00?求解。

作者: 王亚飞    时间: 2012-7-12 14:18
两种方法:

import   java.math.*;  
  ……  
  方法1:  
  float   f   =   34.232323;  
  BigDecimal   b   =   new   BigDecimal(f);  
  float   f1   =   b.setScale(2,   BigDecimal.ROUND_HALF_UP).floatValue();  
  //   b.setScale(2,   BigDecimal.ROUND_HALF_UP)   表明四舍五入,保留两位小数

  
  方法2:  
  float   scale   =   34.236323;  
  DecimalFormat   fnum   =   new   DecimalFormat("##0.00");  
  String   dd=fnum.format(scale);      
  System.out.println(dd);
作者: 王亚飞    时间: 2012-7-12 14:18
不知道能不能帮到你




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2