我有以下代码,其中输入将转换为int类型。我的问题是,如果我输入11.0
,它就不会被视为11。但我希望11.0被视为11。请为此提供帮助,以便我可以将1.0
,2.0
等作为整数。
int selected_option = int.Parse(Console.ReadLine())
答案 0 :(得分:1)
首先尝试将输入字符串转换为 double 。如果转换成功,则将双精度类型转换为int 。
下面是完整的示例:
using System;
namespace ConsoleApp
{
class Test
{
static void Main()
{
double num;
var isConversionSucceed = double.TryParse(Console.ReadLine(), out num);
if (isConversionSucceed)
{
Console.WriteLine((int)num);
}
else
{
Console.WriteLine("Input Conversion failed!");
}
Console.ReadLine();
}
}
}
答案 1 :(得分:-1)
您应该真正使用double.TryParse()
或int.TryParse()
来验证您的工作,但是本着问题的精神,您可以这样做
int selected_option = (int)double.Parse(Console.ReadLine())
或
int selected_option
if (Double.TryParse(Console.ReadLine(), out var number))
{
selected_option = (int)number;
}
else
{
Console.WriteLine("{0} is outside the range.", value);
// break, return, throw, or something
}
但是,如果您想要一个int,则应该对其进行测试
int selected_option
if (!int.TryParse(Console.ReadLine(), out selected_option))
{
Console.WriteLine("{0} is outside the range.", value);
// break, return, throw, or something
}
答案 2 :(得分:-2)
尝试一下
int selected_option = (int)Math.Ceiling(Console.ReadLine());