怎么使float保留两位小数?

hojialiang 2002-05-14 03:57:36
怎么使float保留两位小数。
...全文
3603 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
alphazhao 2002-05-14
  • 打赏
  • 举报
回复
楼上的或多或少有点小bug
比如float换成了double之类
alphazhao 2002-05-14
  • 打赏
  • 举报
回复
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);
newman0708 2002-05-14
  • 打赏
  • 举报
回复
我将两种方法给你选择:
import java.math.*;
class frm extends JFrame
{JLabel label=new JLabel("OK");
double val = 34.232323,ret;
frm()
{this.getContentPane() .add(label) ;
//方法一
ret=Math.round(val*100);//因为round返回long型,所以要将他转换为double
ret/=100;//要一步一步做(类型经过了转换)
//方法二
BigDecimal b = new BigDecimal(val);//这种好
ret= b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue() ;
label.setText(String.valueOf(ret).toString()) ;
}
}

happyegg 2002-05-14
  • 打赏
  • 举报
回复
乘以100取整再除以100,咔咔
hexiaofeng 2002-05-14
  • 打赏
  • 举报
回复
import java.text.*;

class fnum
{
DecimalFormat df = new DecimalFormat("#.00");

public static void main(String k[]){
fnum f = new fnum();
}

public fnum(){
StringBuffer d = new StringBuffer("");
df.format(1123.33333,d,new FieldPosition(2));

System.out.println(d);
}





}

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧