java中decimalformat
importjava.util.Scanner;importjava.text.DecimalFormat;interfaceMath{publicfinaldouble...
import java.util.Scanner;
import java.text.DecimalFormat;
interface Math{
public final double pi=3.1415926;
}
class Airthmetic implements Math{
public double roundArea(double a){
return (pi*a*a);
}
}
public class Sixth{
public static void main(String args[]){
double r;
double area;
double areatwo;
Airthmetic airth=new Airthmetic();
Scanner scan=new Scanner(System.in);
DecimalFormat two=new DecimalFormat("0.00");
System.out.print("请输入圆的半径:");
r=scan.nextDouble();
area=airth.roundArea(r);
areatwo=two.format(area); //为什么会显示为不兼容类型?
System.out.println("圆的面积为:"+areatwo);
}
} 展开
import java.text.DecimalFormat;
interface Math{
public final double pi=3.1415926;
}
class Airthmetic implements Math{
public double roundArea(double a){
return (pi*a*a);
}
}
public class Sixth{
public static void main(String args[]){
double r;
double area;
double areatwo;
Airthmetic airth=new Airthmetic();
Scanner scan=new Scanner(System.in);
DecimalFormat two=new DecimalFormat("0.00");
System.out.print("请输入圆的半径:");
r=scan.nextDouble();
area=airth.roundArea(r);
areatwo=two.format(area); //为什么会显示为不兼容类型?
System.out.println("圆的面积为:"+areatwo);
}
} 展开
展开全部
因为two.format(area)返回的是String类型,而你的变量areatwo是double型的,当然类型不匹配,把变量areatwo定义成String型的变量,即String areatwo; 就行了。
追问
Double static double parseDouble(String s)中Double static double放在这里是什么意思啊,有什么用,是格式?用的时候省去?刚学不懂
追答
第一个Double是类名,static是指这是Double类的静态方法,第二个double是parseDouble的返回类型,这里返回的类型是double类型,parseDouble是方法名,String s是指这个方法需要一个类型为String的参数s。
Double static double parseDouble(String s)是告诉你这个Double类的方法怎么用。在你的这个程序中,也可以用这个函数解决问题,就是把areatwo=two.format(area);改成areatwo=Double.parseDouble(two.format(area));其它的语句不变。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询