Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
ToUInt32 Method (String, IFormatProvider)

Convert.ToUInt32 Method (String, IFormatProvider)

Converts the specified string representation of a number to an equivalent 32-bit unsigned integer, using the specified culture-specific formatting information.

This API is not CLS-compliant. 

Namespace:  System
Assemblies:   System.Runtime.Extensions (in System.Runtime.Extensions.dll)
  mscorlib (in mscorlib.dll)

public static uint ToUInt32(
	string value,
	IFormatProvider provider


Type: System.String

A string that contains the number to convert.

Type: System.IFormatProvider

An object that supplies culture-specific formatting information.

Return Value

Type: System.UInt32
A 32-bit unsigned integer that is equivalent to the number in value, or 0 (zero) if value is null.


value does not consist of an optional sign followed by a sequence of digits (0 through 9).


value represents a number that is less than UInt32.MinValue or greater than UInt32.MaxValue.

The return value is the result of invoking UInt32.Parse on value.

provider is an IFormatProvider instance that obtains a NumberFormatInfo object. The NumberFormatInfo object provides culture-specific information about the format of value. If provider is null, the NumberFormatInfo for the current culture is used.

If you prefer not to handle an exception if the conversion fails, you can call the UInt32.TryParse method instead. It returns a Boolean value that indicates whether the conversion succeeded or failed.

The following example defines a custom NumberFormatInfo object that recognizes the string "pos" as the positive sign and the string "neg" as the negative sign. It then attempts to convert each element of a numeric string array to an integer using both this provider and the NumberFormatInfo provider for the invariant culture.

using System;
using System.Globalization;

public class Class1
   public static void Main()
      // Create a NumberFormatInfo object and set several of its 
      // properties that apply to numbers.
      NumberFormatInfo provider = new NumberFormatInfo(); 
      provider.PositiveSign = "pos ";
      provider.NegativeSign = "neg ";

      // Define an array of numeric strings. 
      string[] values = { "123456789", "+123456789", "pos 123456789", 
                          "123456789.", "123,456,789",  "4294967295", 
                          "4294967296", "-1", "neg 1" };

      foreach (string value in values)
         Console.Write("{0,-20} -->", value);
         try {
            Console.WriteLine("{0,20}", Convert.ToUInt32(value, provider));
         catch (FormatException) {
            Console.WriteLine("{0,20}", "Bad Format");
         catch (OverflowException) {
            Console.WriteLine("{0,20}", "Numeric Overflow");
// The example displays the following output: 
//       123456789            -->           123456789 
//       +123456789           -->          Bad Format 
//       pos 123456789        -->           123456789 
//       123456789.           -->          Bad Format 
//       123,456,789          -->          Bad Format 
//       4294967295           -->          4294967295 
//       4294967296           -->    Numeric Overflow 
//       -1                   -->          Bad Format 
//       neg 1                -->    Numeric Overflow

.NET Framework

Supported in: 4.6, 4.5, 4, 3.5, 3.0, 2.0, 1.1

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

XNA Framework

Supported in: 3.0, 2.0, 1.0

.NET for Windows Phone apps

Supported in: Windows Phone 8.1, Windows Phone Silverlight 8.1, Windows Phone Silverlight 8

Portable Class Library

Supported in: Portable Class Library
© 2015 Microsoft