using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
class Class1
{
public double Zhouchang;
public double Mianji;
public double R;
public double Pi = 3.1415926;
public void PrintZhouchang()
{
Zhouchang = 2 * Pi * R;
Console.WriteLine("圆的周长为:" + Zhouchang);
}
public void PrintMianji()
{
Mianji = Pi * R * R;
Console.WriteLine("圆的面积为:" + Mianji);
}
}
class Program
{
static void Main(string[] args)
{
Class1 Yuan = new Class1();
Console.WriteLine("请输入圆的半径");
Yuan.R = Convert.ToDouble(Console.Read());
Console.ReadLine();
Yuan.PrintZhouchang();
Console.ReadLine();
Yuan.PrintMianji();
Console.ReadLine();
}
}
}
楼主用错方法了。不应该使用Console.Read()。应该使用Console.ReadLine(); Read()与ReadLine()的区别如下:
正确的程序如下:
using System;
namespace yuan
{
class Class1
{
public double Zhouchang;
public double Mianji;
public double R;
public double Pi = 3.1415926;
public void PrintZhouchang()
{
Zhouchang = 2 * Pi * R;
Console.WriteLine("圆的周长为:" + Zhouchang);
}
public void PrintMianji()
{
Mianji = Pi * R * R;
Console.WriteLine("圆的面积为:" + Mianji);
}
}
class Program
{
static void Main(string[] args)
{
Class1 Yuan = new Class1();
Console.WriteLine("请输入圆的半径");
string r = Console.ReadLine();
Yuan.R = Convert.ToDouble(r);
Yuan.PrintZhouchang();
Console.ReadLine();
Yuan.PrintMianji();
Console.ReadLine();
}
}
}
用Console.ReadLine()输入
Yuan.R = Convert.ToDouble(Console.ReadLine());
这没啥毛病,浮点数的精度问题造成的。你可以只保留4位小数,忽略后面不精确的位数
Debug下就行了,一步一步看
可以保留两位或者指定位数小数点,Console.WriteLine($"double类型的:{doubles:F2}");
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!