我想从用户那里得到一个数字,然后将该数字乘以Pi.我对此的尝试如下.但a包含胡言乱语.例如,如果我插入22,则a包含50.我究竟做错了什么?我没有得到任何编译器错误.
double a,b;
a = Console.Read();
b = a * Math.PI;
Console.WriteLine(b);
Run Code Online (Sandbox Code Playgroud)
Øyv*_*hen 64
我不确定你的问题是什么(因为你还没有告诉我们),但我猜是
a = Console.Read();
Run Code Online (Sandbox Code Playgroud)
这只会从您的控制台中读取一个字符.
您可以将程序更改为此.为了使其更健壮,接受多于1个char输入,并验证输入实际上是一个数字:
double a, b;
Console.WriteLine("istenen say?y? sonuna .00 koyarak yaz");
if (double.TryParse(Console.ReadLine(), out a)) {
b = a * Math.PI;
Console.WriteLine("Sonuç " + b);
} else {
//user gave an illegal input. Handle it here.
}
Run Code Online (Sandbox Code Playgroud)
And*_*son 15
a = double.Parse(Console.ReadLine());
Run Code Online (Sandbox Code Playgroud)
请注意,如果用户输入无法解析为double的内容,则会抛出异常.
编辑:
为了扩展我的答案,它不适合你的原因是你以字符串格式从用户那里得到一个输入,并试图将它直接放入一个double.你不能这样做.您必须首先从字符串中提取double值.
如果您想执行某种错误检查,只需执行以下操作:
if ( double.TryParse(Console.ReadLine(), out a) ) {
Console.Writeline("Sonuç "+ a * Math.PI;);
}
else {
Console.WriteLine("Invalid number entered. Please enter number in format: #.#");
}
Run Code Online (Sandbox Code Playgroud)
感谢Öyvind和abatischev帮助我改进我的答案.
string input = Console.ReadLine();
double d;
if (!Double.TryParse(input, out d))
Console.WriteLine("Wrong input");
double r = d * Math.Pi;
Console.WriteLine(r);
Run Code Online (Sandbox Code Playgroud)
您面临的不同输入/输出的主要原因是Console.Read()返回char代码,而不是您键入的数字!了解如何使用MSDN.
| 归档时间: |
|
| 查看次数: |
346095 次 |
| 最近记录: |