Я новичок в C++ и программировании в целом. Я пытаюсь выполнить небольшие программы, чтобы испортить мне руку. Ниже приведена программа, которую я создал для расчета объема конуса.C++ проблемы с плавающей запятой
Проблема: независимо от того, что я делаю, выход всегда является целым числом. Я хочу получить его с точностью до двух десятичных знаков. Я попытался изменить переменные на двойной и длинный двойной, чтобы получить более высокую точность, и ничего не работает.
Как это исправить? И почему это происходит? (Если возможно, подробно) Я даже попросил нескольких младших преподавателей в UNi, пока никто не дал мне надлежащего ответа.
int main(){
float radius,length,volume ;
const float PI =22/7.0f;
cin >> radius >> length;
volume =1/3.0f *radius*radius*length;
cout << "Volume is " << volume <<endl;
return 0;
}
Я использую г ++ на Fedora
EDIT: Я попробовал это earlyer с входами, как 50 60/70 50/120 40, который дает целые числа. Меньшие входы, такие как 3 4, дают десятичные значения.
EDIT: setprecision() работает. спасибо за всех, кто отправил это
Этот код печатает много десятичных знаков. (И это приближение для PI довольно слабое.) – Mat
OMG, IT'S TRUE O.O http://thedailywtf.com/Articles/The-Object-Test,-a-New-PI,-and-More-SHEEIT.aspx –