求解一个问题!
编写一个方法,显示小数点后面指定个数的数字。这个方法的签名如下所示:public static double format(double number,int numOfDigits)
例如,format(10.3422345)返回10.34
搜索更多相关的解决方案:
求解
----------------解决方案--------------------------------------------------------
public class demo{
public static void main (String[] args) {
double dd= format(2.36256,4);
System.out.println(dd);
}
public static double format(double x,int y){
int zhengshu=(int)x;
double dd=x-zhengshu;
for (int i=0;i<y;i++){
dd = dd*10;
}
int dd1 = (int)dd;
double xiaoshu = dd1;
for(int i=0;i<y;i++){
xiaoshu=xiaoshu/10;
}
double dreturn = zhengshu+xiaoshu;
return dreturn;
}
}
----------------解决方案--------------------------------------------------------
----------------解决方案--------------------------------------------------------
果然是个好算法!!收藏一下!!!
----------------解决方案--------------------------------------------------------
是个思路!
----------------解决方案--------------------------------------------------------
不错,谢了!
----------------解决方案--------------------------------------------------------
不错!
----------------解决方案--------------------------------------------------------
[CODE]class FormatNum{
public static double format(double x,int y){
Pattern p=Pattern.compile("\\d+.\\d{"+y+"}");
String strnum=String.valueOf(x);
Matcher m=p.matcher(strnum);
if(m.find()){
strnum=strnum.substring(m.start(),m.end());
}
return Double.parseDouble(strnum);
}
}[/CODE]
正则表达式。
----------------解决方案--------------------------------------------------------
回复:(huwangvs)[CODE]class FormatNum{ pu...
受教了,谢谢!我对JAVA的类库并不是很熟悉。
----------------解决方案--------------------------------------------------------
另一种算法,简单些么?呵呵,当然正则算法还是首选啦
class Double{
public static void main(String[] args){
double d=2.55334132451;
int q=5;
System.out.println(d+" format "+formatDouble(d,q));
}
protected static double formatDouble(double x,int y){
for(int i=0;i<y;i++){
x=x*10;
}
double x2=(int)x;
for(int i=0;i<y;i++){
x2=x2/10;
}
return x2;
}
}
[此贴子已经被作者于2007-10-17 11:25:17编辑过]
----------------解决方案--------------------------------------------------------