Loading...
Terziyski avatar Terziyski 54 Точки

[Homework] C# Basics - Console Input Output - Problem {3} Circle Perimeter and Area

Здравейте, имам следния проблем със тази задача .

Условието : 

Problem 1.       Circle Perimeter and Area

Write a program that reads the radius r of a circle and prints its perimeter and area formatted with 2 digits after the decimal point.

Когато въвеждам данните не ми излиза 12.57  , а 12.56.......... ;

Ето самият код : 

Console.Write(" r = ");
double r = double.Parse(Console.ReadLine());

double p = (2 * Math.PI) * r;
double a = Math.PI * (r * r);

Console.WriteLine("Perimeter is : " + p);
Console.WriteLine("Area is : " + a);

И от тук ми излиза едно дълго число , но така и не излиза 12.57 . Пробвах с Math.Round , но ми го закръгля до 13 . 

Ако някой има идея как точно се закръгля на 12.57 нека да сподели ?

 

Moderator Edit: Нарушена точка 9 от правилата на форума.

Тагове:
1
Programming Basics 08/02/2015 01:14:56
jabalka:
Има тема за домашното -> https://softuni.bg/forum/questions/details/239 Както и теми за самата задача. Моля, използвайте търсачката преди да пускате нови.
SimeonStoykov avatar SimeonStoykov 114 Точки
Best Answer

Здравей. Проблема се получава, защото никъде не закръгляш до 2 знака след запетаята както е по условие (с Math.Round закръгляш до най-близкото цяло число, затова ти закръгля до 13). Програмата ще работи коректно,  ако форматираш изхода с плейсхолдъри по следния начин:

Console.WriteLine("Perimeter is: {0:f2}", p);
Console.WriteLine("Area is : {0:f2} ", a);

Освен това друг възможен вариант да закръглиш (без плейсхолдъри и чрез ползване на Math.Round) е следния:

p = Math.Round(p, 2);

а = Math.Round(а, 2);

И след това просто печаташ p и а. С тази двойка след запетаята, указваш с колко знака искаш да закръглиш след десетичната запетая.

 

6
07/02/2015 11:36:59
Terziyski avatar Terziyski 54 Точки

Благодаря , за бързия и точен отговор . Вече всичко работи както трябва.

Не ми мина и през ум за плейсхолдъри :D .

2
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.