Convert.ToInt64 Method (String, IFormatProvider)
Converts the specified string representation of a number to an equivalent 64-bit signed integer, using the specified culture-specific formatting information.
Assembly: mscorlib (in mscorlib.dll)
Parameters
- value
-
Type:
System.String
A string that contains the number to convert.
- provider
-
Type:
System.IFormatProvider
An object that supplies culture-specific formatting information.
Return Value
Type: System.Int64A 64-bit signed integer that is equivalent to the number in value, or 0 (zero) if value is null.
| Exception | Condition |
|---|---|
| FormatException | value does not consist of an optional sign followed by a sequence of digits (0 through 9). |
| OverflowException | value represents a number that is less than Int64.MinValue or greater than Int64.MaxValue. |
The return value is the result of invoking the Int64.Parse method 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 Int64.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.
Imports System.Globalization Public Module Example Public Sub Main() ' Create a NumberFormatInfo object and set the properties that ' affect conversions using Convert.ToInt64(String, IFormatProvider). Dim customProvider As New NumberFormatInfo() customProvider.NegativeSign = "neg " customProvider.PositiveSign = "pos " ' Create an array of providers with the custom provider and the ' NumberFormatInfo object for the invariant culture. Dim providers() As NumberFormatInfo = {customProvider, _ NumberFormatInfo.InvariantInfo } ' Define an array of strings to parse. Dim numericStrings() As String = { "123456789", "+123456789", _ "pos 123456789", "-123456789", _ "neg 123456789", "123456789.", _ "123,456,789", "(123456789)", _ "9223372036854775808", "-9223372036854775809" } For ctr As Integer = 0 to 1 Dim provider As IFormatProvider = providers(ctr) Console.WriteLine(IIf(ctr = 0, "Custom Provider:", "Invariant Culture:")) For Each numericString As String In numericStrings Console.Write(" {0,-22} --> ", numericString) Try Console.WriteLine("{0,22}", Convert.ToInt32(numericString, provider)) Catch e As FormatException Console.WriteLine("{0,22}", "Unrecognized Format") Catch e As OverflowException Console.WriteLine("{0,22}", "Overflow") End Try Next Console.WriteLine() Next End Sub End Module ' The example displays the following output: ' Custom Provider: ' 123456789 --> 123456789 ' +123456789 --> Unrecognized Format ' pos 123456789 --> 123456789 ' -123456789 --> Unrecognized Format ' neg 123456789 --> -123456789 ' 123456789. --> Unrecognized Format ' 123,456,789 --> Unrecognized Format ' (123456789) --> Unrecognized Format ' 9223372036854775808 --> Overflow ' -9223372036854775809 --> Unrecognized Format ' ' Invariant Culture: ' 123456789 --> 123456789 ' +123456789 --> 123456789 ' pos 123456789 --> Unrecognized Format ' -123456789 --> -123456789 ' neg 123456789 --> Unrecognized Format ' 123456789. --> Unrecognized Format ' 123,456,789 --> Unrecognized Format ' (123456789) --> Unrecognized Format ' 9223372036854775808 --> Overflow ' -9223372036854775809 --> Overflow
Available since 8
.NET Framework
Available since 1.1
Portable Class Library
Supported in: portable .NET platforms
Silverlight
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Windows Phone
Available since 8.1