2016-05-30 7 views
0

の理由を理解することはできません私はは以下はIllegalArgumentException

で別々の出力を追加する場合、私は上記のエラーを取得していない午前しかし、私は

Exception in thread "main" java.lang.IllegalArgumentException: Cannot format  given Object as a Number 

    at java.text.DecimalFormat.format(DecimalFormat.java:507) 

    at java.text.Format.format(Format.java:157) 

    at CircleTest.main(CircleTest.java:35) 

としてエラーを取得しています

// Testing class circle 
import java.text.DecimalFormat ; 
import javax.swing.JOptionPane ; 

public class CircleTest { 

    public static void main(String args[]) 
    { 
     // instantiate Circle object 
     Circle circle = new Circle() ; 

     Point3 point = new Point3(40, 50) ; 

     // get circle's initial x - y coordinate and radius 
     String output = "\nX coordinate is " + circle.getX() + 
         "\nY coordinate is " + circle.getY() + 
         "\nRadius is " + circle.getRadius() ; 

     circle.setX(35);   // set new x - coordinate 
     circle.setY(20);   // set new y - coordinate 
     circle.setRadius(4.25); // set new radius 

     // get String representation of new circle value 
     output += "\n\nThe new location and radius of circle are\n" + 
        circle.toString() ; 



     // format floating - point values with 2 digits of precision 
     DecimalFormat twoDigits = new DecimalFormat (" 0.00 ") ; 

     // get Circle's diameter, Circumference and area respectively 
     output += "\nDiameter is " + twoDigits.format(circle.getDiameter()) + 
       "\nCircumference is " + twoDigits.format(circle.getCircumference()) + 
       "\nArea is " + twoDigits.format(circle.getArea() + 
         " Test sum is: " + twoDigits.format( point.sum())) ; 



     JOptionPane.showMessageDialog(null, output) ; 

     System.exit(0); 
    } // end method main 

} // end class CircleTest 

、私のコードです

output += " Test sum is: " + twoDigits.format(point.sum()) ; 

なぜですか?何が問題ですか ?

+1

@ライン35は、どのようなコードである1を固定されていますか? –

+3

'circle.getArea()'の後に ')'がありません – Codebender

+0

'circle.getDiameter()'とは何ですか? 'circle.getCircumference()'とは何ですか? 'circle.getArea()'とは何ですか? 'point.sum()'とは何ですか? – m0skit0

答えて

1

formatは、領域だけでなく文字列全体に適用されます。)がありません。

+0

ええ、私の間違い:)ありがとう –

0

あなたは誤ってかっこを入れています。ここで

output += "\nDiameter is " + twoDigits.format(circle.getDiameter()) + 
      "\nCircumference is " + twoDigits.format(circle.getCircumference()) + 
      "\nArea is " + twoDigits.format(circle.getArea()) + 
      " Test sum is: " + twoDigits.format(point.sum()) ;