package net.yeah.lijun;class Lader
{
    double above, bottom, height;    Lader(double a, double b, double h) //构造方法
    {
        above = a;
        bottom = b;
        height = h;
    }    public void setAbove(double a)
    {
        above = a;
    }    public void setBottom(double b)
    {
        bottom = b;
    }    public void setHeight(double h)
    {
        height = h;
    }    double computerArea()
    {
        return (above + bottom) * height / 2.0;
    }
}public class Example
{    public static void main(String[] args)
    {
        double area1,area2=0;
        Lader laderOne,laderTwo;  //声明对象
        laderOne=new Lader(5,10,12);
        laderTwo = new Lader(10,20.45,20);
        area1=laderOne.computerArea();
        area2=laderTwo.computerArea();
        System.out.printf("laderOne和laderTwo的面积分别是:%n%f,%f\n",area1,area2);         //此处出错
        laderOne.setAbove(10);
        laderTwo.setBottom(40);
        area1=laderOne.computerArea();
        area2=laderTwo.computerArea();
        System.out.printf("laderOne和laderTwo的面积分别是:%n%f,%f\n",area1,area2);        //此处出错
        
    }
}程序中两个printf()出错!
我使用的是:Eclipse3.0.1和JDK1.5.0
小弟港学习java,请各位大虾指点!

解决方案 »

  1.   

    The method printf(String, Object[]) in the type PrintStream is not applicable for the arguments (String, double, double)
    谢谢!
      

  2.   

    没有错啊
    不用IDE,在控制台试一下
      

  3.   

    System.out.printf("laderOne和laderTwo的面积分别是:%n%f,%f\n",area1,area2);
    // %f %n
      

  4.   

    楼主写的是JAVA程序吧!
    JAVA中输出的是Systetm.out.println("");
    你这种是C的,当然C这样写也不对的
    System.out.printf("laderOne和laderTwo的面积分别是:%n%f,%f\n",area1,area2);        //此处出错
      

  5.   

    老兄,这个程序在我eclipse里面运行的没有问题。
    但是,我不知道你所用的版本是什么,从1.5版本以后,java推出了一个自动装箱的功能,它能把一般类型的变量,自动转换为对象,就拿你这个例子来说。
    area1和area2都是double类型,注意它只是Java内的一般类型,并不是变量,而
    System.out.printf这个方法,具体的参数如下:
    public PrintStream printf(String format,Object... args)
    他的第一个是要求字符串,而其他的则需要对象这个参数,所以要解决这个问题,你必须要把area1和area2转换为对象,你自需要将
            area1=laderOne.computerArea();
            area2=laderTwo.computerArea();
    这两个改成
            area1=Double.valueOf(laderOne.computerArea());
            area2=Double.valueOf(laderTwo.computerArea());
    就行了,我建议你用Eclipse 3.2.0的版本,用这个可以更好的兼容Java 1.5以上的版本!!!
      

  6.   

    不好意思刚刚写错了,应该是java 5.0版本以后才具有自动装箱的功能,
      

  7.   

    哦,你还要将area1和area2定义为Double对象,

    Double area1,area2;