Данная статья переведена с помощью средств машинного перевода. Чтобы просмотреть ее на английском языке, установите флажок Английский. Вы также можете просматривать английский текст во всплывающем окне, наводя указатель мыши на переведенный текст.
Перевод
Английский

Метод Convert.ToDouble (String, IFormatProvider)

 

Опубликовано: Октябрь 2016

Преобразует заданное строковое представление числа в эквивалентное число с плавающей запятой двойной точности, используя указанные сведения об особенностях форматирования, связанных с языком и региональными параметрами.

Пространство имен:   System
Сборка:  mscorlib (в mscorlib.dll)

public static double ToDouble(
	string value,
	IFormatProvider provider
)

Параметры

value
Type: System.String

Строка, содержащая преобразуемое число.

provider
Type: System.IFormatProvider

Объект, предоставляющий сведения о форматировании для определенного языка и региональных параметров.

Возвращаемое значение

Type: System.Double

Число с плавающей запятой двойной точности, эквивалентное числу value, или 0 (нуль), если value имеет значение null.

Exception Condition
FormatException

value не является числом в допустимом формате.

OverflowException

Параметр value представляет число меньше Double.MinValue или больше Double.MaxValue.

Возвращаемое значение является результатом вызова Double.Parse метод value.

providerIFormatProvider экземпляр, который получает NumberFormatInfo объекта. NumberFormatInfo Объект предоставляет зависящие от культуры сведения о формате параметра value. Если providernull, NumberFormatInfo , используется текущий язык и региональные параметры.

Если вы предпочитаете не обрабатывать исключение, если преобразование завершается неудачей, можно вызвать Double.TryParse метод вместо него. Он возвращает Boolean значение, указывающее, успешно ли выполнено преобразование.

В следующем примере преобразование строковых представлений Double значения ToDouble метод, с помощью IFormatProvider объекта.

using System;
using System.Globalization;

class Example
{
    static void Main()
    {
        // Create a NumberFormatInfo object and set some of its properties.
        NumberFormatInfo provider = new NumberFormatInfo();
        provider.NumberDecimalSeparator = ",";
        provider.NumberGroupSeparator = ".";
        provider.NumberGroupSizes = new int[] { 3 };

        // Define an array of numeric strings to convert.
        String[] values = { "123456789", "12345.6789", "12345,6789", 
                            "123,456.789", "123.456,789", 
                            "123,456,789.0123", "123.456.789,0123" };

        Console.WriteLine("Default Culture: {0}\n", 
                          CultureInfo.CurrentCulture.Name);
        Console.WriteLine("{0,-22} {1,-20} {2,-20}\n", "String to Convert",
                          "Default/Exception", "Provider/Exception");

        // Convert each string to a Double with and without the provider.
        foreach (var value in values) {
           Console.Write("{0,-22} ", value);
           try {
              Console.Write("{0,-20} ", Convert.ToDouble(value));
           }   
           catch (FormatException e) {
              Console.Write("{0,-20} ", e.GetType().Name);
           }
           try {
              Console.WriteLine("{0,-20} ", Convert.ToDouble(value, provider));
           }
           catch (FormatException e) {
              Console.WriteLine("{0,-20} ", e.GetType().Name);
           }
        }
    }
}
// The example displays the following output:
//       Default Culture: en-US
//       
//       String to Convert      Default/Exception    Provider/Exception
//       
//       123456789              123456789            123456789
//       12345.6789             12345.6789           123456789
//       12345,6789             123456789            12345.6789
//       123,456.789            123456.789           FormatException
//       123.456,789            FormatException      123456.789
//       123,456,789.0123       123456789.0123       FormatException
//       123.456.789,0123       FormatException      123456789.0123

Универсальная платформа Windows
Доступно с 8
.NET Framework
Доступно с 1.1
Переносимая библиотека классов
Поддерживается в: переносимые платформы .NET
Silverlight
Доступно с 2.0
Windows Phone Silverlight
Доступно с 7.0
Windows Phone
Доступно с 8.1
Вернуться в начало
Показ: