2014-09-30 1 views
-1

Я выполняю задание для своего первого программирования JAVA. Пока все идет хорошо, но я застрял в последней части с использованием математических функций.Как использовать Math.PI и Math.pow

double radius; 
double diameter; 
double volume; 

System.out.print("Enter a diameter of a sphere: "); 
diameter = keyboard.nextDouble(); 
radius = diameter/2; 
volume = (4/3) * Math.PI * Math.pow(radius, 3.0); 
System.out.print("Volume of the sphere is " + volume + "."); 

Я пытаюсь использовать формулу для нахождения объема сферы с использованием входной переменной диаметра. Но я продолжаю получать только PI как результат.

Это то, что я должен делать.

  1. Добавить строку, которая подскажет пользователю ввести диаметр сферы.
  2. Прочитайте и сохраните номер в переменной, называемой диаметром (вам нужно будет объявить любые переменные, которые вы используете).
  3. Диаметр в два раза длиннее радиуса, поэтому рассчитайте и сохраните радиус в переменной с соответствующим именем.
  4. Формулы для объема сферы V = 4/3 * ПИ * радиус^3 Преобразовать формулу Java и добавить строку, которая вычисляет и сохраняет значение объема в соответствующем имени переменного. Используйте Math.PI для PI и Math.pow для вычисления радиуса.
  5. Распечатайте результаты на экране с соответствующим сообщением.

Что я делаю неправильно? Также как это сделать, чтобы громкость отображалась с помощью E-нотации?

+3

'(4/3)' оценивает ** нуль **, поскольку Java будет использовать 'Integer Arithmetic'. –

+0

Используйте эту формулу для тома вместо вашего '4 * Math.PI * Math.pow (радиус, 3.0)/3' (см. @ PM77-1, чтобы узнать, почему это необходимо). – Dici

+0

@ PM77-1 Вы должны опубликовать более подробный ответ для него, чтобы понять – Dici

ответ

1

Я думаю, что вы можете получить неправильный анс из-за 4/3 в Integer Math, дать 1, а не 1.33. Попробуйте изменить код на то, что ниже. Я старался и работал хорошо для меня.

radius = diameter/2.0d; 
volume = (4.0d/3.0d) * Math.PI * Math.pow(radius, 3); 
+0

Это хороший (и правильный) комментарий, но не ответ. –

+0

@ PM77-1, хорошая точка. Я до сих пор не знаком с некоторыми этикетами в стеке. Я предполагаю, что этого сообщения было бы достаточно для меня, чтобы ответить как ответ :) –

+2

Вам не нужно 'd'. По умолчанию это будет 'double'. –