当前位置: 技术问答>java相关
怎么使float保留两位小数?
来源: 互联网 发布时间:2015-05-29
本文导语: 怎么使float保留两位小数。 | 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)...
怎么使float保留两位小数。
|
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);
……
方法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);
|
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);
}
}
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);
}
}
|
我将两种方法给你选择:
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()) ;
}
}
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()) ;
}
}