一般神马J**a中怎样保留两位小数。是不是要用Math.round()啊?第1个回答:tmdsxb1232012-03-07TA获得超

第1个回答:

tmdsxb1232012-03-07TA获得超过622个赞关注总的说来,我用了两中方式。System.out.printf("f(%d)=%.2f\n",x,y);printf是j**a继承C来的,可以用c的方式来格式化输出。还有就是j**a自己提供了更为丰富的格式化输出。用到Format,format是一个用于格式化语言环境敏感的信息(如日期、消息和数字)的抽象基类。Format定义了编程接口,用于将语言环境敏感的对象格式化为String(使用format方法)和将String重新解析为对象(使用parseObject方法)。数字NumberFormat用于格式化输出数字,在j**a.text.包中,如果你有API,那就很简单的多了。你复制下去,运行一下,我测试的是32=0.53=0.334=0.25和你的要求一样。希望采纳。importj**a.text.NumberFormat;importj**a.util.Scanner;publicclassTest{publicstaticvoidmain(Stringargs[]){intrepeat,ri,x;doubley;Scannerin=newScanner(System.in);repeat=in.nextInt();NumberFormatf=NumberFormat.getInstance();f.setMaximumFractionDigits(2);for(ri=1;ri<=repeat;ri++){x=in.nextInt();/*---------*/if(x!=0)y=1.0/x;//还有在这里,是1.0/x,不然结果全是0.如果不懂,下面有连接,我回答的elsey=0;//System.out.println("f("+x+")="+y);Strings=f.format(y);//System.out.printf("f(%d)=%.2f\n",x,y);System.out.println("f("+x+")="+s);//如果要得到你所说的,我建议用**mberformat来格式化输出。}}}http://zhidao.bai**.ttjj.org/question/390739373.html?old=1&afterAnswer=1#here