954,518 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Have something to say? Contribute New Article Reply to this Article

Trouble with area

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) );

NewToThis
Newbie Poster
14 posts since Jul 2009
Reputation Points: 10
Solved Threads: 0
 

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.

System.out.printf("Area is %f\n", (x * x * math.PI) );
wildgoose
Practically a Posting Shark
896 posts since Jun 2009
Reputation Points: 546
Solved Threads: 99
 

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.

NewToThis
Newbie Poster
14 posts since Jul 2009
Reputation Points: 10
Solved Threads: 0
 

Please post your code!

wildgoose
Practically a Posting Shark
896 posts since Jun 2009
Reputation Points: 546
Solved Threads: 99
 

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).

BestJewSinceJC
Posting Maven
2,772 posts since Sep 2008
Reputation Points: 874
Solved Threads: 354
 
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

NewToThis
Newbie Poster
14 posts since Jul 2009
Reputation Points: 10
Solved Threads: 0
 

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.

wildgoose
Practically a Posting Shark
896 posts since Jun 2009
Reputation Points: 546
Solved Threads: 99
 

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.

JamesCherrill
Posting Genius
Moderator
6,371 posts since Apr 2008
Reputation Points: 2,130
Solved Threads: 1,073
 
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.

NewToThis
Newbie Poster
14 posts since Jul 2009
Reputation Points: 10
Solved Threads: 0
 

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.

JamesCherrill
Posting Genius
Moderator
6,371 posts since Apr 2008
Reputation Points: 2,130
Solved Threads: 1,073
 
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.

Thanks a great deal.....

NewToThis
Newbie Poster
14 posts since Jul 2009
Reputation Points: 10
Solved Threads: 0
 

This question has already been solved

Post: Markdown Syntax: Formatting Help
You