0

第一张图是我教授要我们做的: https ://prnt.sc/v1drxs

这是我的代码:

Console.Write("Enter the radius for a circle: ");

double radius = Convert.ToDouble(Console.ReadLine());
double diameter = 2 * radius;
double circumference = Convert.ToDouble(Math.PI * diameter);

Console.WriteLine("\nThe radius of the circle is " + radius + " units.");
Console.WriteLine("The diameter of the circle is " + diameter + " units.");
Console.WriteLine("The circumference of the circle is " + circumference + " units.");

Console.Write("\nPress any key to continue...");

Console.ReadKey();

我试过的:

我正在使用 Microsoft Visual Studio 2017。我对编码非常陌生。帮助将不胜感激,谢谢!

4

2 回答 2

0

您可以使用 将Math.Round(myDouble, 2)值四舍五入到小数点后两位。

但是,如果值四舍五入使得十进制值为“X.00”,那么这将输出“X”</p>

据我所知,您希望它输出“X.00”</p>

为此,我们可以使用该String.Format方法。

以下是这 3 种情况的示例。

Console.WriteLine("The radius of the circle is " + radius + " units.");
Console.WriteLine("The diameter of the circle is " + diameter + " units.");
Console.WriteLine("The circumference of the circle is " + circumference + " units.");

Console.WriteLine();
Console.WriteLine("The radius of the circle is " + Math.Round(radius, 2) + " units");
Console.WriteLine("The diameter of the circle is " + Math.Round(diameter, 2) + " units"); 
Console.WriteLine("The circumference of the circle is " + Math.Round(circumference, 2) + " units");

Console.WriteLine();
Console.WriteLine(String.Format("The radius of the circle is {0:0.00} units", Math.Round(radius, 2)));
Console.WriteLine(String.Format("The diameter of the circle is {0:0.00} units", Math.Round(diameter, 2)));
Console.WriteLine(String.Format("The circumference of the circle is {0:0.00} units", Math.Round(circumference, 2)));
于 2020-10-18T03:08:30.283 回答
0

我会使用带格式说明符的插值字符串。通过在字符串前面加上美元符号,您向编译器发出信号,表明该字符串包含需要替换的大括号内的变量。格式说明符说“显示到小数点后两位”(代表浮点数)。您应该查找标准自定义数字格式说明符${}F2F

请注意,我double.TryParse用来解释用户的输入 - 如果它是错误的,我会给他/她另一个机会。如果您使用double.ParseConvert.ToDouble执行此操作,则不正确的条目将导致抛出异常。用户以不正确的格式输入信息几乎不是例外情况,因此应尽可能避免例外情况。该调用用 a而不是异常TryParse发出错误信号。bool

double radius;
string responseFromUser;
do
{
    Console.Write("Enter the radius for a circle: ");
    responseFromUser = Console.ReadLine();
} while (!double.TryParse(responseFromUser, out radius));

double diameter = 2 * radius;
double circumference = Convert.ToDouble(Math.PI * diameter);

Console.WriteLine($"{Environment.NewLine}The radius of the circle is {radius:F2} units.");
Console.WriteLine($"The diameter of the circle is {diameter:F2} units.");
Console.WriteLine($"The circumference of the circle is {circumference:F2} units.");

Console.Write($"{Environment.NewLine}Press any key to continue...");

Console.ReadKey();

输出如下所示:

Enter the radius for a circle: abc
Enter the radius for a circle: 12.333

The radius of the circle is 12.33 units.
The diameter of the circle is 24.67 units.
The circumference of the circle is 77.49 units.

Press any key to continue...

如果您输入的内容少于两个小数点,您仍然会得到两个小数点:

Enter the radius for a circle: 4

The radius of the circle is 4.00 units.
The diameter of the circle is 8.00 units.
The circumference of the circle is 25.13 units.

Press any key to continue...
于 2020-10-18T04:16:53.957 回答