Trouble with area

Thread Solved

Join Date: Jul 2009
Posts: 14
Reputation: NewToThis is an unknown quantity at this point 
Solved Threads: 0
NewToThis NewToThis is offline Offline
Newbie Poster

Re: Signing In

 
0
  #1
Jul 2nd, 2009
I have been trying to build a Java program to prompt the user to enter the radius of a circle and the diameter, circumference, and area will be output through a "System.out.printf" statement. I can get the program to prompt for the radius and it will display the diameter, but will not identify the Area or Circumference. I keep getting an error with the Math variable. What could be wrong with this code for Area:
System.out.printf("Area is %d\n", (x * x * math.PI) );
Reply With Quote Quick reply to this message  
Join Date: Jun 2009
Posts: 830
Reputation: wildgoose is a name known to all wildgoose is a name known to all wildgoose is a name known to all wildgoose is a name known to all wildgoose is a name known to all wildgoose is a name known to all 
Solved Threads: 94
wildgoose's Avatar
wildgoose wildgoose is offline Offline
Practically a Posting Shark

Re: Trouble with area

 
0
  #2
Jul 2nd, 2009
Ahem!

Given only radius gives you all the other data. No need to input.
Circumference = 2 * PI * r
Area = PI * r * r
etc.

I'm also assuming your x is entered as a Floating-Point value.

  1. System.out.printf("Area is %f\n", (x * x * math.PI) );
Last edited by wildgoose; Jul 2nd, 2009 at 6:44 pm. Reason: error
Reply With Quote Quick reply to this message  
Join Date: Jul 2009
Posts: 14
Reputation: NewToThis is an unknown quantity at this point 
Solved Threads: 0
NewToThis NewToThis is offline Offline
Newbie Poster

Re: Trouble with area

 
0
  #3
Jul 6th, 2009
Thanks, that really cleared up my format for the Area and Circumference, but I am still getting an error for diameter. Honestly, I do not know why. I have eliminated one problem by capitalizing the "M" in Math.PI, but can't get over the diameter issue.
Reply With Quote Quick reply to this message  
Join Date: Jun 2009
Posts: 830
Reputation: wildgoose is a name known to all wildgoose is a name known to all wildgoose is a name known to all wildgoose is a name known to all wildgoose is a name known to all wildgoose is a name known to all 
Solved Threads: 94
wildgoose's Avatar
wildgoose wildgoose is offline Offline
Practically a Posting Shark

Re: Trouble with area

 
0
  #4
Jul 6th, 2009
Please post your code!
Reply With Quote Quick reply to this message  
Join Date: Sep 2008
Posts: 1,566
Reputation: BestJewSinceJC is a name known to all BestJewSinceJC is a name known to all BestJewSinceJC is a name known to all BestJewSinceJC is a name known to all BestJewSinceJC is a name known to all BestJewSinceJC is a name known to all 
Solved Threads: 196
BestJewSinceJC BestJewSinceJC is offline Offline
Posting Virtuoso

Re: Trouble with area

 
0
  #5
Jul 6th, 2009
And also post what error you are getting. If you are successfully reading in the radius, then 2 * radius should give you the diameter without problems as long as the radius is declared as the correct type (i.e. float or double).
Last edited by BestJewSinceJC; Jul 6th, 2009 at 9:45 pm.
Out.
Reply With Quote Quick reply to this message  
Join Date: Jul 2009
Posts: 14
Reputation: NewToThis is an unknown quantity at this point 
Solved Threads: 0
NewToThis NewToThis is offline Offline
Newbie Poster

Re: Trouble with area

 
0
  #6
Jul 7th, 2009
Originally Posted by BestJewSinceJC View Post
And also post what error you are getting. If you are successfully reading in the radius, then 2 * radius should give you the diameter without problems as long as the radius is declared as the correct type (i.e. float or double).
Here is the last part of the code for the print out. I do not get any errors when I build the program, but when I run it I get the following:

"Diameter is Exception in thread "main" java.util.IllegalFormatConversionException: f != java.lang.Integer"

System.out.print( "declare radius of circle: " ); // prompt for input
x = input.nextInt(); // read first integer

//display results
System.out.printf("Area is %f\n", (x * x * Math.PI) );// output the Area
System.out.printf("Circumference is %f\n", (2 * x * Math.PI) );// output the circumference
System.out.printf("Diameter is %f\n", (2 * x) );// output the diameter using printf

}//end main
}//end class Circle
Reply With Quote Quick reply to this message  
Join Date: Jun 2009
Posts: 830
Reputation: wildgoose is a name known to all wildgoose is a name known to all wildgoose is a name known to all wildgoose is a name known to all wildgoose is a name known to all wildgoose is a name known to all 
Solved Threads: 94
wildgoose's Avatar
wildgoose wildgoose is offline Offline
Practically a Posting Shark

Re: Trouble with area

 
0
  #7
Jul 7th, 2009
Post your entire code! Errors can be misleading without seeing everything in context!

For example if x is an integer or a double it can cause a problem with that printf. The fact that it was multiplied with a float (PI) would make the result a float.
Last edited by wildgoose; Jul 7th, 2009 at 1:58 am. Reason: addendum
Reply With Quote Quick reply to this message  
Join Date: Apr 2008
Posts: 972
Reputation: JamesCherrill is just really nice JamesCherrill is just really nice JamesCherrill is just really nice JamesCherrill is just really nice JamesCherrill is just really nice 
Solved Threads: 146
JamesCherrill JamesCherrill is offline Offline
Posting Shark

Re: Trouble with area

 
0
  #8
Jul 7th, 2009
Because x is assigned from an input.nextInt(), I assume it's declared as int, so:
%f requires a floating point value, but 2*x is an integer value. Change the format to %d when you print the diameter, OR change the calculation to 2.0*x so the result is floating point.
Last edited by JamesCherrill; Jul 7th, 2009 at 1:28 pm.
Reply With Quote Quick reply to this message  
Join Date: Jul 2009
Posts: 14
Reputation: NewToThis is an unknown quantity at this point 
Solved Threads: 0
NewToThis NewToThis is offline Offline
Newbie Poster

Re: Trouble with area

 
0
  #9
Jul 7th, 2009
Originally Posted by JamesCherrill View Post
Because x is assigned from an input.nextInt(), I assume it's declared as int, so:
%f requires a floating point value, but 2*x is an integer value. Change the format to %d when you print the diameter, OR change the calculation to 2.0*x so the result is floating point.
Oh Yeah! That worked. I was assigning a floating point value to all of the equations. Problem solved, you guys are fabulous. I want to excel at this stuff, so I have to ask why is there a difference in Area, Circumference, and Diameter in being a floating point value and an integer value.
Reply With Quote Quick reply to this message  
Join Date: Apr 2008
Posts: 972
Reputation: JamesCherrill is just really nice JamesCherrill is just really nice JamesCherrill is just really nice JamesCherrill is just really nice JamesCherrill is just really nice 
Solved Threads: 146
JamesCherrill JamesCherrill is offline Offline
Posting Shark

Re: Trouble with area

 
0
  #10
Jul 7th, 2009
x is an int. When you do a calc with just integers, the result is an int, but if it's mixed ints and floats, the result is float. Pi is a float. Area and circ. involved Pi, bit diameter didn't.
Reply With Quote Quick reply to this message  
Reply

This thread has been marked solved.
Perhaps start a new thread instead?
Message:


Thread Tools Search this Thread



About Us | Contact Us | Advertise | DaniWeb | Acceptable Use Policy | RSS Feed

©2003 - 2009 DaniWeb® LLC