c# - C# 给出的值与预期不同
问题描述
我刚开始学习 C#,我遇到了这个问题:代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Test_CSharp_
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Enter the number: ");
double num = Console.Read();
Console.WriteLine("Result = " + num*num);
}
}
}
当我输入: 10 这是输出:
Enter the number:
10
Result = 2401
Press any key to continue . . .
请帮忙。
我使用 Visual Studio 2019(社区版)
解决方案
Console.Read()
给你下一个字符值(即:它给你一个有效值char
或-1),而不是下一个输入数字的值。
相反,您必须使用Console.ReadLine()
并解析它double.TryParse(string, out double)
:
Console.WriteLine("Enter the number: ");
// Get the next line input
string input = Console.ReadLine();
// Try to parse it as a double
if (double.TryParse(input, out double num)) {
// On true we have a number
Console.WriteLine("Result = " + num*num);
} else {
// On fail we couldn't parse it.
Console.WriteLine("Error, please input a number.");
}
推荐阅读
- java - Appium - @FindBy 不识别元素 - org.openqa.selenium.NoSuchElementException: Can't locate an element by this strategy
- bash - 语法错误:使用 emacs 编辑此处文档中的代码时文件意外结束。与纳米一起工作正常
- python - 如何在 Python 脚本中间取消提升用户权限?
- php - 如何在 PHP 中安装 Google Index API
- asp.net - 用一行代码构建 ASP.NET Core API 和 Angular
- unity3d - Physics OverlapSphere 未检测到碰撞
- javascript - 有什么更好的方法来访问它。Function.bind 与捕获变量
- ios - 转义闭包捕获变异的“自我”参数,Firebase
- delphi - Rad Studio 10.4 中的自定义帮助
- android - iOS 和 Android 模拟器当前时间的差异