当前位置: 技术问答>java相关
java中如何4舍5入
来源: 互联网 发布时间:2015-06-18
本文导语: 要将double类型的变量按规定的小数位转化成字符串,有没有像vb中类似format的函数? | //四舍五入 double d=Math.round(4.5); d=5 //变量按规定的小数位转化 double d=12.2544; java.text.DecimalFormat df=new java.text...
要将double类型的变量按规定的小数位转化成字符串,有没有像vb中类似format的函数?
|
//四舍五入
double d=Math.round(4.5);
d=5
//变量按规定的小数位转化
double d=12.2544;
java.text.DecimalFormat df=new java.text.DecimalFormat("###,##0.00");
String g=df.format(d);
System.out.println(g);
或
public static String formatNumber(double f)
{
DecimalFormat df=new DecimalFormat("0.00#");
return df(f);
}
这样就好了!
double d=Math.round(4.5);
d=5
//变量按规定的小数位转化
double d=12.2544;
java.text.DecimalFormat df=new java.text.DecimalFormat("###,##0.00");
String g=df.format(d);
System.out.println(g);
或
public static String formatNumber(double f)
{
DecimalFormat df=new DecimalFormat("0.00#");
return df(f);
}
这样就好了!
|
方法1:
保证精度的同时要求四舍五入:
double f = 34.232323;
BigDecimal b = new BigDecimal(f);
double f1 = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
0A
// b.setScale(2, BigDecimal.ROUND_HALF_UP) 表明四舍五入,保留两位小数,想保留几位将数字2该动就行
上面是对double类型的处理,如果对float的,则将上面所有的double字段换成float就行
方法2:
float scale;
DecimalFormat fnum = new DecimalFormat("##0.00");//保留两位小数
String dd=fnum.format(scale);
System.out.println(dd);
==============================================================
如上所言,并非完全正确,请从建议的角度、用怀疑的眼光批判地接收
保证精度的同时要求四舍五入:
double f = 34.232323;
BigDecimal b = new BigDecimal(f);
double f1 = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
0A
// b.setScale(2, BigDecimal.ROUND_HALF_UP) 表明四舍五入,保留两位小数,想保留几位将数字2该动就行
上面是对double类型的处理,如果对float的,则将上面所有的double字段换成float就行
方法2:
float scale;
DecimalFormat fnum = new DecimalFormat("##0.00");//保留两位小数
String dd=fnum.format(scale);
System.out.println(dd);
==============================================================
如上所言,并非完全正确,请从建议的角度、用怀疑的眼光批判地接收
|
Math.round(2.5); // =3
Math.round(2.4); // =2
Math.round(2.4); // =2
|
我给人下方法给你:
import java.text.DecimalFormat;
public static String roundUp(double d, String RoundFormat)
{
DecimalFormat nf = new DecimalFormat(RoundFormat);
return nf.format(d);
}
parseDouble(String s)
如果是两位小数:
double f = 10.66666667;
f=Double.parseDouble(roundUp(f,"0.00"));
f-->10.67
这样你想保留几位小都可以
f=Double.parseDouble(roundUp(f,"0.0000"));
-f---->10.6667
f=Double.parseDouble(roundUp(f,"0.00000"));
-f---->10.66667
import java.text.DecimalFormat;
public static String roundUp(double d, String RoundFormat)
{
DecimalFormat nf = new DecimalFormat(RoundFormat);
return nf.format(d);
}
parseDouble(String s)
如果是两位小数:
double f = 10.66666667;
f=Double.parseDouble(roundUp(f,"0.00"));
f-->10.67
这样你想保留几位小都可以
f=Double.parseDouble(roundUp(f,"0.0000"));
-f---->10.6667
f=Double.parseDouble(roundUp(f,"0.00000"));
-f---->10.66667
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。