将带小数的字符串数字转换为int

时间:2018-07-04 10:23:31

标签: c#

我有以下代码,其中输入将转换为int类型。我的问题是,如果我输入11.0,它就不会被视为11。但我希望11.0被视为11。请为此提供帮助,以便我可以将1.02.0等作为整数。

int selected_option = int.Parse(Console.ReadLine()) 

3 个答案:

答案 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());