java新手问题(关于四舍五入,保留小数问题),先谢谢各位了???????

lenoli 2004-10-18 09:41:06
double dC = 1000.2356
要把dC保留两位小数,同时四舍五入,怎么写代码?
...全文
485 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
YuLimin 2005-03-27
  • 打赏
  • 举报
回复
1位小数就是Math.round(XX*10)/10

2位小数就是Math.round(XX*100)/100
flyazdream 2004-10-18
  • 打赏
  • 举报
回复
http://blog.csdn.net/faintbear/archive/2004/08/30/88657.aspx
flyazdream 2004-10-18
  • 打赏
  • 举报
回复
/**

* 提供小数位四舍五入处理。

* @param v 需要四舍五入的数字

* @param scale 小数点后保留几位

* @return 四舍五入后的结果

*/

public static double round(double v,int scale){
String temp="#,##0.";
for (int i=0;i<scale ;i++ )
{
temp+="0";
}
return Double.valueOf(new java.text.DecimalFormat(temp).format(v));
}


Java带的Math.round不提供精确到位数。上面方法可以完成此功能
micker 2004-10-18
  • 打赏
  • 举报
回复
double dC = 1000.2356;
dC=(double)Math.round(dC*100)/100;
System.out.print(dC);
lenoli 2004-10-18
  • 打赏
  • 举报
回复
return Double.valueOf(new java.text.DecimalFormat(temp).format(v));

编译不过去阿
manbaum 2004-10-18
  • 打赏
  • 举报
回复
double dC = 1000.2356
double dC1 = (double)((int)(dC * 100) + 0.5))/100.0;
cold_blooded 2004-10-18
  • 打赏
  • 举报
回复
public class Test {

public static void main(String[] args) {
float[] float_args = {12345.26f, 1234.22f, 123.22f, 0.123456789f};
for (int i = 0; i < float_args.length; i++) {
System.out.println(floatFormat(float_args[i]));
}

double[] double_args = {12345.26d, 1234.22d, 123.22d, 0.123456789d};
for (int i = 0; i < double_args.length; i++) {
System.out.println(doubleFormat(double_args[i]));
}

}

public static String floatFormat(float f) {
DecimalFormat df = new DecimalFormat("0.#");
return df.format(f);
}

public static String doubleFormat(double d) {
DecimalFormat df = new DecimalFormat("0.##");
return df.format(d);
}
}

67,549

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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