A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王双宝 初级黑马   /  2012-7-12 13:48  /  2697 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

如何保留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?求解。

2 个回复

倒序浏览
两种方法:

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:22

评分

参与人数 1技术分 +1 收起 理由
韦念欣 + 1 赞一个!

查看全部评分

回复 使用道具 举报
不知道能不能帮到你
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马