Udostępnij za pośrednictwem


Porady: Konwertowanie ciągu na liczbę (Przewodnik programowania w języku C#)

Następujące przykłady przedstawiają kilka różnych sposobów można przekonwertować string do int.Takie przekształcenie może być przydatne podczas uzyskiwania wprowadzanie liczb od argument wiersza polecenia, na przykład.Istnieją metody podobne do konwersji ciągów na inne typy liczbowe, takie jak float lub długi.W poniższej tabeli przedstawiono niektóre z tych metod.

Typ liczbowy

Metoda

decimal

ToDecimal(String)

float

ToSingle(String)

double

ToDouble(String)

short

ToInt16(String)

int

ToInt32(String)

long

ToInt64(String)

ushort

ToUInt16(String)

uint

ToUInt32(String)

ulong

ToUInt64(String)

Przykład

W tym przykładzie wywołuje ToInt32(String) metoda konwertować dane wejściowe string do int .Program połowy najczęściej dwa wyjątki, które mogą być generowane przez tę metodę, FormatException i OverflowException.Jeśli numer może zwiększana bez przepełnienia lokalizacji magazynu liczba całkowita, program dodaje 1 do wyniku i drukuje dane wyjściowe.

static void Main(string[] args)
{
    int numVal = -1;
    bool repeat = true;

    while (repeat == true)
    {
        Console.WriteLine("Enter a number between −2,147,483,648 and +2,147,483,647 (inclusive).");

        string input = Console.ReadLine();

        // ToInt32 can throw FormatException or OverflowException.
        try
        {
            numVal = Convert.ToInt32(input);
        }
        catch (FormatException e)
        {
            Console.WriteLine("Input string is not a sequence of digits.");
        }
        catch (OverflowException e)
        {
            Console.WriteLine("The number cannot fit in an Int32.");
        }
        finally
        {
            if (numVal < Int32.MaxValue)
            {
                Console.WriteLine("The new value is {0}", numVal + 1);
            }
            else
            {
                Console.WriteLine("numVal cannot be incremented beyond its current value");
            }
        }
        Console.WriteLine("Go again? Y/N");
        string go = Console.ReadLine();
        if (go == "Y" || go == "y")
        {
            repeat = true;
        }
        else
        {
            repeat = false;
        }
    }
    // Keep the console open in debug mode.
    Console.WriteLine("Press any key to exit.");
    Console.ReadKey();    
}
// Sample Output:
// Enter a number between -2,147,483,648 and +2,147,483,647 (inclusive).
// 473
// The new value is 474
// Go again? Y/N
// y
// Enter a number between -2,147,483,648 and +2,147,483,647 (inclusive).
// 2147483647
// numVal cannot be incremented beyond its current value
// Go again? Y/N
// Y
// Enter a number between -2,147,483,648 and +2,147,483,647 (inclusive).
// -1000
// The new value is -999
// Go again? Y/N
// n
// Press any key to exit.

Inny sposób konwertowania string do int jest przez Parse lub TryParse metody System.Int32 struct.ToUInt32 Używa metody Parse wewnętrznie.Jeśli ciąg nie jest w nieprawidłowym formacie, Parse zgłasza wyjątek TryParse nie Zgłoś wyjątek, ale zwraca false.W przykładach pokazano zarówno udanych i nieudanych połączeń do Parse i TryParse.

int numVal = Int32.Parse("-105");
Console.WriteLine(numVal);
// Output: -105
// TryParse returns true if the conversion succeeded
// and stores the result in the specified variable.
int j;
bool result = Int32.TryParse("-105", out j);
if (true == result)
    Console.WriteLine(j);
else
    Console.WriteLine("String could not be parsed.");
// Output: -105
try
{
    int m = Int32.Parse("abc");
}
catch (FormatException e)
{
    Console.WriteLine(e.Message);
}
// Output: Input string was not in a correct format.
string inputString = "abc";
int numValue;
bool parsed = Int32.TryParse(inputString, out numValue);

if (!parsed)
    Console.WriteLine("Int32.TryParse could not parse '{0}' to an int.\n", inputString);

// Output: Int32.TryParse could not parse 'abc' to an int.

Zobacz też

Zadania

Jak: określić, czy ciąg reprezentuje wartość liczbowa (Podręcznik programowania C#)

Informacje

Typy (Podręcznik programowania C#)