Как decimal перевести в string c
Все примитивные типы имеют два метода, которые позволяют преобразовать строку к данному типу. Это методы Parse() и TryParse() .
Метод Parse() в качестве параметра принимает строку и возвращает объект текущего типа. Например:
int a = int.Parse("10"); double b = double.Parse("23,56"); decimal c = decimal.Parse("12,45"); byte d = byte.Parse("4"); Console.WriteLine($"a= b= c= d=");
Стоит отметить, что парсинг дробных чисел зависит от настроек текущей культуры. В частности, для получения числа double я передаю строку «23,56» с запятой в качестве разделителя. Если бы я передал точку вместо запятой, то приложение выдало ошибку выполнения. На компьютерах с другой локалью, наоборот, использование запятой вместо точки выдало бы ошибку.
Чтобы не зависеть от культурных различий мы можем установить четкий формат с помощью класса NumberFormatInfo и его свойства NumberDecimalSeparator :
using System.Globalization; IFormatProvider formatter = new NumberFormatInfo < NumberDecimalSeparator = "." >; double number = double.Parse("23.56", formatter); Console.WriteLine(number); // 23,56
В данном случае в качестве разделителя устанавливается точка. Однако тем не менее потенциально при использовании метода Parse мы можем столкнуться с ошибкой, например, при передачи алфавитных символов вместо числовых. И в этом случае более удачным выбором будет применение метода TryParse() . Он пытается преобразовать строку к типу и, если преобразование прошло успешно, то возвращает true . Иначе возвращается false:
Console.WriteLine("Введите строку:"); string? input = Console.ReadLine(); bool result = int.TryParse(input, out var number); if (result == true) Console.WriteLine($"Преобразование прошло успешно. Число: "); else Console.WriteLine("Преобразование завершилось неудачно");
Если преобразование пройдет неудачно, то исключения никакого не будет выброшено, просто метод TryParse возвратит false, а переменная number будет содержать значение по умолчанию.
Convert
Класс Convert представляет еще один способ для преобразования значений. Для этого в нем определены следующие статические методы:
- ToBoolean(value)
- ToByte(value)
- ToChar(value)
- ToDateTime(value)
- ToDecimal(value)
- ToDouble(value)
- ToInt16(value)
- ToInt32(value)
- ToInt64(value)
- ToSByte(value)
- ToSingle(value)
- ToUInt16(value)
- ToUInt32(value)
- ToUInt64(value)
В качестве параметра в эти методы может передаваться значение различных примитивных типов, необязательно строки:
int n = Convert.ToInt32("23"); bool b = true; double d = Convert.ToDouble(b); Console.WriteLine($"n= d=");
Однако опять же, как и в случае с методом Parse, если методу не удастся преобразовать значение к нужному типу, то он выбрасывает исключение FormatException.
Как decimal перевести в string c
Нередко в программах встречается ситуация, когда надо преобразовать число в строку или строку в число. Для этой цели в стандартной библиотеке языка С определены функции strtol() и snprintf() .
Из строки в число. strtol
Функция strtol() преобразует строку в число типа long int . Функция определена в заголовочном файле stdlib.h и имеет следующий прототип:
long strtol(const char *restrict str, char **restrict str_end, int base);
- str — строка с числом, которое надо преобразовать в числовой тип. Ключевое слово restrict указывает компилятору оптимизировать код и что никакой другой параметр не будет указывать на адрес данного параметра.
- str_end — указатель на последний символ строки. Данный параметр можно игнорировать, передавая ему значение NULL
- base — основание, система исчисления, в которую надо преобразовать данные (значение от 2 до 36).
Результатом функции является преобразованное число типа long .
Например, преобразуем строку в число в десятичной системе:
#include #include int main(void) < const char * str = "24 flowers"; long result = strtol(str, NULL, 10); printf("Result: %ld\n", result); // Result: 24 return 0; >
В примере выше второй параметр функции никак не использовался — мы ему передавали значение NULL , и функция нормально работала. Однако он может быть полезен, если нам надо получить остаток строки, которая идет после числа:
#include #include int main(void) < const char * str = "24 flowers"; char* str_end; long result = strtol(str, &str_end, 10); printf("Result: %ld\n", result); // Result: 24 printf("Rest of the string:%s\n", str_end); // Rest of the string: flowers return 0; >
Из числа в строку. snprintf
Функция snprintf() преобразует число в отформатированную строку. Функция определена в заголовочном файле stdio.h и имеет следующий прототип:
int snprintf(char *restrict str_buffer, size_t buffer_size, const char *restrict format, . );
- str_buffer — строка, в которую помещается преобразованное число.
- buffer_size — максимальное количество символов строки. Функция записывает в строку buffer-size — 1 байт и добавляет концевой нулевой байт
- format — задает формат преобразования в строку.
При успешном преобразовании функция возвращает количество символов, записанных в строку (исключая концевой нулевой байт). При неудачном преобразовании возвращается отрицательное число.
#include int main(void) < int number = 354; char str [10]; snprintf(str, sizeof str, "%d", number); printf("Result: %s\n", str); // Result: 354 return 0; >
При этом строка форматирования может содержать множество параметров:
#include int main(void) < int count = 3; double price = 79.99; char str [50]; snprintf(str, sizeof str, "Count: %d \tPrice: %.2f", count, price); printf("%s\n", str); // Count: 3 Price: 79.99 return 0; >
Decimal. To String Метод
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Преобразует значение данного экземпляра в эквивалентное ему представление типа String.
Перегрузки
Преобразует числовое значение данного экземпляра в эквивалентное ему строковое представление.
Преобразует числовое значение данного экземпляра в эквивалентное ему строковое представление с использованием указанных сведений об особенностях форматирования для данного языка и региональных параметров.
Преобразует числовое значение данного экземпляра в эквивалентное строковое представление с использованием указанного формата.
Преобразует числовое значение данного экземпляра в эквивалентное ему строковое представление с использованием указанного формата и сведений об особенностях форматирования для данного языка и региональных параметров.
ToString()
Исходный код: Decimal.cs Исходный код: Decimal.cs Исходный код: Decimal.cs
Преобразует числовое значение данного экземпляра в эквивалентное ему строковое представление.
public: override System::String ^ ToString();
public override string ToString ();
override this.ToString : unit -> string
Public Overrides Function ToString () As String
Возвращаемое значение
Строковое представление значения данного экземпляра.
Примеры
В следующем примере отображается Decimal значение с помощью метода по умолчанию ToString() . Он также отображает строковые представления значения, Decimal полученные в результате использования ряда описателей стандартного формата.
decimal value = -16325.62m; // Display value using default ToString method. Console.WriteLine(value.ToString()); // Displays -16325.62 // Display value using some standard format specifiers. Console.WriteLine(value.ToString("G")); // Displays -16325.62 Console.WriteLine(value.ToString("C")); // Displays ($16,325.62) Console.WriteLine(value.ToString("F")); // Displays -16325.62
let value = -16325.62m // Display value using default ToString method. printfn $"" // Displays -16325.62 // Display value using some standard format specifiers. printfn $"""""" // Displays -16325.62 printfn $"""""" // Displays ($16,325.62) printfn $"""""" // Displays -16325.62
Dim value As Decimal = -16325.62d ' Display value using default ToString method. Console.WriteLine(value.ToString()) ' Displays -16325.62 ' Display value using some standard format specifiers. Console.WriteLine(value.ToString("G")) ' Displays -16325.62 Console.WriteLine(value.ToString("C")) ' Displays ($16,325.62) Console.WriteLine(value.ToString("F")) ' Displays -16325.62
В следующем примере отображается сумма денег на счете.
public ref class PiggyBank < public: void AddPenny() < MyFortune = Decimal::Add( MyFortune, (Decimal).01 ); >virtual System::String^ ToString() override < return MyFortune.ToString("C")+" in piggy bank"; >protected: Decimal MyFortune; >; >
class PiggyBank < public void AddPenny() < MyFortune = Decimal.Add(MyFortune, .01m); >public override string ToString() < return MyFortune.ToString("C")+" in piggy bank"; >protected decimal MyFortune; >
type PiggyBank() = let mutable myFortune = 0m member _.AddPenny() = myFortune in piggy bank"
Class PiggyBank Public Sub AddPenny() MyFortune = [Decimal].Add(MyFortune, 0.01D) End Sub Public Overrides Function ToString() As String Return MyFortune.ToString("C") + " in piggy bank" End Function Protected MyFortune As Decimal End Class
Комментарии
Метод ToString() форматирует Decimal значение в формате по умолчанию («G» или «общий») текущего языка и региональных параметров. Если вы хотите указать другой формат или язык и региональные параметры, используйте другие перегрузки ToString метода следующим образом:
Использование формата | Для языка и региональных параметров | Использование перегрузки |
---|---|---|
Формат по умолчанию («G») | Определенный язык и региональные параметры | ToString(IFormatProvider) |
Определенный формат | Язык и региональные параметры по умолчанию (текущий) | ToString(String) |
Определенный формат | Определенный язык и региональные параметры | ToString(String, IFormatProvider) |
.NET предоставляет расширенную поддержку форматирования, которая более подробно описана в следующих разделах:
- Дополнительные сведения об описателях числовых форматов см. в разделах Строки стандартного числового формата и Строки настраиваемого числового формата.
- Дополнительные сведения о форматировании см. в разделе Типы форматирования.
См. также раздел
- Parse(String)
- Типы форматирования в .NET
- Строки стандартных числовых форматов
Применяется к
ToString(IFormatProvider)
Исходный код: Decimal.cs Исходный код: Decimal.cs Исходный код: Decimal.cs
Преобразует числовое значение данного экземпляра в эквивалентное ему строковое представление с использованием указанных сведений об особенностях форматирования для данного языка и региональных параметров.
public: virtual System::String ^ ToString(IFormatProvider ^ provider);
public: System::String ^ ToString(IFormatProvider ^ provider);
public string ToString (IFormatProvider provider);
public string ToString (IFormatProvider? provider);
override this.ToString : IFormatProvider -> string
Public Function ToString (provider As IFormatProvider) As String
Параметры
Объект, предоставляющий сведения о форматировании для определенного языка и региональных параметров.
Возвращаемое значение
Строковое представление значения данного экземпляра, определяемое параметром provider .
Реализации
Примеры
В следующем примере показано строковое Decimal представление значения с помощью CultureInfo объектов, представляющих несколько разных языков и региональных параметров.
decimal value = -16325.62m; // Display value using the invariant culture. Console.WriteLine(value.ToString(CultureInfo.InvariantCulture)); // Display value using the en-GB culture. Console.WriteLine(value.ToString(CultureInfo.CreateSpecificCulture("en-GB"))); // Display value using the de-DE culture. Console.WriteLine(value.ToString(CultureInfo.CreateSpecificCulture("de-DE"))); // This example displays the following output to the console: // -16325.62 // -16325.62 // -16325,62
let value = -16325.62m // Display value using the invariant culture. printfn $"" // Display value using the en-GB culture. printfn $"""""" // Display value using the de-DE culture. printfn $"""""" // This example displays the following output to the console: // -16325.62 // -16325.62 // -16325,62
Dim value As Decimal = -16325.62d ' Display value using the invariant culture. Console.WriteLine(value.ToString(CultureInfo.InvariantCulture)) ' Display value using the en-GB culture. Console.WriteLine(value.ToString(CultureInfo.CreateSpecificCulture("en-GB"))) ' Display value using the de-DE culture. Console.WriteLine(value.ToString(CultureInfo.CreateSpecificCulture("de-DE"))) ' This example displays the following output to the console: ' -16325.62 ' -16325.62 ' -16325,62
Комментарии
Метод ToString(IFormatProvider) форматирует Decimal значение в формате по умолчанию («G» или «общий») указанного языка и региональных параметров. Если вы хотите указать другой формат или текущий язык и региональные параметры, используйте другие перегрузки ToString метода следующим образом:
Использование формата | Для языка и региональных параметров | Использование перегрузки |
---|---|---|
Формат по умолчанию («G») | Язык и региональные параметры по умолчанию (текущий) | ToString() |
Определенный формат | Язык и региональные параметры по умолчанию (текущий) | ToString(String) |
Определенный формат | Определенный язык и региональные параметры | ToString(String, IFormatProvider) |
.NET предоставляет расширенную поддержку форматирования, которая более подробно описана в следующих разделах:
- Дополнительные сведения об описателях числовых форматов см. в разделах Строки стандартного числового формата и Строки настраиваемого числового формата.
- Дополнительные сведения о форматировании см. в разделе Типы форматирования.
Параметр provider является реализацией, IFormatProvider метод которой IFormatProvider.GetFormat возвращает NumberFormatInfo объект . Как правило, provider является NumberFormatInfo объектом или CultureInfo объектом . Параметр provider предоставляет сведения, относящиеся к языку и региональным параметрам, которые используются при форматировании. Если значение параметра provider равно null , используются текущий язык и региональные параметры потока.
Чтобы преобразовать значение в Decimal строковое представление, используя указанные язык и региональные параметры и определенную строку формата, вызовите Decimal.ToString(String, IFormatProvider) метод .
См. также раздел
- Parse(String)
- Типы форматирования в .NET
- Строки стандартных числовых форматов
Применяется к
ToString(String)
Исходный код: Decimal.cs Исходный код: Decimal.cs Исходный код: Decimal.cs
Преобразует числовое значение данного экземпляра в эквивалентное строковое представление с использованием указанного формата.
public: System::String ^ ToString(System::String ^ format);
public string ToString (string format);
public string ToString (string? format);
override this.ToString : string -> string
Public Function ToString (format As String) As String
Параметры
Стандартная или пользовательская строка числового формата.
Возвращаемое значение
Строковое представление значения данного экземпляра, определяемое параметром format .
Исключения
Примеры
В следующем примере отображается значение с Decimal использованием каждого из поддерживаемых описателей стандартного числового формата вместе с двумя строками настраиваемого числового формата. При преобразовании числовых значений в строки в примере используются соглашения о форматировании языка и региональных параметров en-US.
decimal value = 16325.62m; string specifier; // Use standard numeric format specifiers. specifier = "G"; Console.WriteLine(": ", specifier, value.ToString(specifier)); // Displays: G: 16325.62 specifier = "C"; Console.WriteLine(": ", specifier, value.ToString(specifier)); // Displays: C: $16,325.62 specifier = "E04"; Console.WriteLine(": ", specifier, value.ToString(specifier)); // Displays: E04: 1.6326E+004 specifier = "F"; Console.WriteLine(": ", specifier, value.ToString(specifier)); // Displays: F: 16325.62 specifier = "N"; Console.WriteLine(": ", specifier, value.ToString(specifier)); // Displays: N: 16,325.62 specifier = "P"; Console.WriteLine(": ", specifier, (value/10000).ToString(specifier)); // Displays: P: 163.26 % // Use custom numeric format specifiers. specifier = "0,0.000"; Console.WriteLine(": ", specifier, value.ToString(specifier)); // Displays: 0,0.000: 16,325.620 specifier = "#,#.00#;(#,#.00#)"; Console.WriteLine(": ", specifier, (value*-1).ToString(specifier)); // Displays: #,#.00#;(#,#.00#): (16,325.62)
let value = 16325.62m // Use standard numeric format specifiers. let specifier = "G" printfn $": " // Displays: G: 16325.62 let specifier = "C" printfn $": " // Displays: C: $16,325.62 let specifier = "E04" printfn $": " // Displays: E04: 1.6326E+004 let specifier = "F" printfn $": " // Displays: F: 16325.62 let specifier = "N" printfn $": " // Displays: N: 16,325.62 let specifier = "P" printfn $": <(value / 10000m).ToString specifier>" // Displays: P: 163.26 % // Use custom numeric format specifiers. let specifier = "0,0.000" printfn $": " // Displays: 0,0.000: 16,325.620 let specifier = "#,#.00#(#,#.00#)" printfn $": <(value * -1m).ToString specifier>" // Displays: #,#.00#(#,#.00#): (16,325.62)
Dim value As Decimal = 16325.62d Dim specifier As String ' Use standard numeric format specifiers. specifier = "G" Console.WriteLine(": ", specifier, value.ToString(specifier)) ' Displays: G: 16325.62 specifier = "C" Console.WriteLine(": ", specifier, value.ToString(specifier)) ' Displays: C: $16,325.62 specifier = "E04" Console.WriteLine(": ", specifier, value.ToString(specifier)) ' Displays: E04: 1.6326E+004 specifier = "F" Console.WriteLine(": ", specifier, value.ToString(specifier)) ' Displays: F: 16325.62 specifier = "N" Console.WriteLine(": ", specifier, value.ToString(specifier)) ' Displays: N: 16,325.62 specifier = "P" Console.WriteLine(": ", specifier, (value/10000).ToString(specifier)) ' Displays: P: 163.26 % ' Use custom numeric format specifiers. specifier = "0,0.000" Console.WriteLine(": ", specifier, value.ToString(specifier)) ' Displays: 0,0.000: 16,325.620 specifier = "#,#.00#;(#,#.00#)" Console.WriteLine(": ", specifier, (value*-1).ToString(specifier)) ' Displays: #,#.00#;(#,#.00#): (16,325.62)
Комментарии
Метод ToString(String) форматирует Decimal значение в указанном формате, используя соглашения текущего языка и региональных параметров. Если вы хотите использовать формат по умолчанию («G» или общий) или указать другой язык и региональные параметры, используйте другие перегрузки ToString метода следующим образом:
Использование формата | Для языка и региональных параметров | Использование перегрузки |
---|---|---|
Формат по умолчанию («G») | Язык и региональные параметры по умолчанию (текущий) | ToString() |
Формат по умолчанию («G») | Определенный язык и региональные параметры | ToString(IFormatProvider) |
Определенный формат | Определенный язык и региональные параметры | ToString(String, IFormatProvider) |
Метод ToString использует строку стандартного или пользовательского числового формата, указанную параметром format , для преобразования значения текущего экземпляра в его строковое представление. Параметр format может быть любым допустимым описателем стандартного числового формата , за исключением D, R и X, а также любым сочетанием описателей настраиваемых числовых форматов. Если format имеет значение null или является пустой строкой, возвращаемое значение этого экземпляра форматируется с помощью общего описатель числового формата (G).
.NET предоставляет расширенную поддержку форматирования, которая более подробно описана в следующих разделах:
- Дополнительные сведения об описателях числовых форматов см. в разделах Строки стандартного числового формата и Строки настраиваемого числового формата.
- Дополнительные сведения о форматировании см. в разделе Типы форматирования.
Возвращаемое значение форматируется с помощью NumberFormatInfo объекта для текущего языка и региональных параметров. Чтобы применить соглашения о форматировании указанного языка и региональных параметров, вызовите ToString(String, IFormatProvider) метод .
См. также раздел
- Parse(String)
- Типы форматирования в .NET
- Строки стандартных числовых форматов
- Строки настраиваемых числовых форматов
- Практическое руководство. Добавление к числу начальных нулей
Применяется к
ToString(String, IFormatProvider)
Исходный код: Decimal.cs Исходный код: Decimal.cs Исходный код: Decimal.cs
Преобразует числовое значение данного экземпляра в эквивалентное ему строковое представление с использованием указанного формата и сведений об особенностях форматирования для данного языка и региональных параметров.
public: virtual System::String ^ ToString(System::String ^ format, IFormatProvider ^ provider);
public string ToString (string format, IFormatProvider provider);
public string ToString (string? format, IFormatProvider? provider);
override this.ToString : string * IFormatProvider -> string
Public Function ToString (format As String, provider As IFormatProvider) As String
Параметры
Строка числового формата.
Объект, предоставляющий сведения о форматировании для определенного языка и региональных параметров.
Возвращаемое значение
Строковое представление значения данного экземпляра, определяемое параметрами format и provider .
Реализации
Исключения
Примеры
В следующем примере отображается значение с Decimal использованием каждого из поддерживаемых описателей стандартного числового формата для нескольких разных языков и региональных параметров.
decimal value = 16325.62m; string specifier; CultureInfo culture; // Use standard numeric format specifiers. specifier = "G"; culture = CultureInfo.CreateSpecificCulture("eu-ES"); Console.WriteLine(value.ToString(specifier, culture)); // Displays: 16325,62 Console.WriteLine(value.ToString(specifier, CultureInfo.InvariantCulture)); // Displays: 16325.62 specifier = "C"; culture = CultureInfo.CreateSpecificCulture("en-US"); Console.WriteLine(value.ToString(specifier, culture)); // Displays: $16,325.62 culture = CultureInfo.CreateSpecificCulture("en-GB"); Console.WriteLine(value.ToString(specifier, culture)); // Displays: £16,325.62 specifier = "E04"; culture = CultureInfo.CreateSpecificCulture("sv-SE"); Console.WriteLine(value.ToString(specifier, culture)); // Displays: 1,6326E+004 culture = CultureInfo.CreateSpecificCulture("en-NZ"); Console.WriteLine(value.ToString(specifier, culture)); // Displays: 1.6326E+004 specifier = "F"; culture = CultureInfo.CreateSpecificCulture("fr-FR"); Console.WriteLine(value.ToString(specifier, culture)); // Displays: 16325,62 culture = CultureInfo.CreateSpecificCulture("en-CA"); Console.WriteLine(value.ToString(specifier, culture)); // Displays: 16325.62 specifier = "N"; culture = CultureInfo.CreateSpecificCulture("es-ES"); Console.WriteLine(value.ToString(specifier, culture)); // Displays: 16.325,62 culture = CultureInfo.CreateSpecificCulture("fr-CA"); Console.WriteLine(value.ToString(specifier, culture)); // Displays: 16 325,62 specifier = "P"; culture = CultureInfo.InvariantCulture; Console.WriteLine((value/10000).ToString(specifier, culture)); // Displays: 163.26 % culture = CultureInfo.CreateSpecificCulture("ar-EG"); Console.WriteLine((value/10000).ToString(specifier, culture)); // Displays: 163.256 %
let value = 16325.62m // Use standard numeric format specifiers. let specifier = "G" let culture = CultureInfo.CreateSpecificCulture "eu-ES" Console.WriteLine(value.ToString(specifier, culture)) // Displays: 16325,62 Console.WriteLine(value.ToString(specifier, CultureInfo.InvariantCulture)) // Displays: 16325.62 let specifier = "C" let culture = CultureInfo.CreateSpecificCulture "en-US" Console.WriteLine(value.ToString(specifier, culture)) // Displays: $16,325.62 let culture = CultureInfo.CreateSpecificCulture "en-GB" Console.WriteLine(value.ToString(specifier, culture)) // Displays: £16,325.62 let specifier = "E04" let culture = CultureInfo.CreateSpecificCulture "sv-SE" Console.WriteLine(value.ToString(specifier, culture)) // Displays: 1,6326E+004 let culture = CultureInfo.CreateSpecificCulture "en-NZ" Console.WriteLine(value.ToString(specifier, culture)) // Displays: 1.6326E+004 let specifier = "F" let culture = CultureInfo.CreateSpecificCulture "fr-FR" Console.WriteLine(value.ToString(specifier, culture)) // Displays: 16325,62 let culture = CultureInfo.CreateSpecificCulture "en-CA" Console.WriteLine(value.ToString(specifier, culture)) // Displays: 16325.62 let specifier = "N" let culture = CultureInfo.CreateSpecificCulture "es-ES" Console.WriteLine(value.ToString(specifier, culture)) // Displays: 16.325,62 let culture = CultureInfo.CreateSpecificCulture "fr-CA" Console.WriteLine(value.ToString(specifier, culture)) // Displays: 16 325,62 let specifier = "P" let culture = CultureInfo.InvariantCulture printfn $"<(value / 10000m).ToString(specifier, culture)>" // Displays: 163.26 % let culture = CultureInfo.CreateSpecificCulture "ar-EG" printfn $"<(value / 10000m).ToString(specifier, culture)>" // Displays: 163.256 %
Dim value As Decimal = 16325.62d Dim specifier As String Dim culture As CultureInfo ' Use standard numeric format specifiers. specifier = "G" culture = CultureInfo.CreateSpecificCulture("eu-ES") Console.WriteLine(value.ToString(specifier, culture)) ' Displays: 16325,62 Console.WriteLine(value.ToString(specifier, CultureInfo.InvariantCulture)) ' Displays: 16325.62 specifier = "C" culture = CultureInfo.CreateSpecificCulture("en-US") Console.WriteLine(value.ToString(specifier, culture)) ' Displays: $16,325.62 culture = CultureInfo.CreateSpecificCulture("en-GB") Console.WriteLine(value.ToString(specifier, culture)) ' Displays: £16,325.62 specifier = "E04" culture = CultureInfo.CreateSpecificCulture("sv-SE") Console.WriteLine(value.ToString(specifier, culture)) ' Displays: 1,6326E+004 culture = CultureInfo.CreateSpecificCulture("en-NZ") Console.WriteLine(value.ToString(specifier, culture)) ' Displays: 1.6326E+004 specifier = "F" culture = CultureInfo.CreateSpecificCulture("fr-FR") Console.WriteLine(value.ToString(specifier, culture)) ' Displays: 16325,62 culture = CultureInfo.CreateSpecificCulture("en-CA") Console.WriteLine(value.ToString(specifier, culture)) ' Displays: 16325.62 specifier = "N" culture = CultureInfo.CreateSpecificCulture("es-ES") Console.WriteLine(value.ToString(specifier, culture)) ' Displays: 16.325,62 culture = CultureInfo.CreateSpecificCulture("fr-CA") Console.WriteLine(value.ToString(specifier, culture)) ' Displays: 16 325,62 specifier = "P" culture = CultureInfo.InvariantCulture Console.WriteLine((value/10000).ToString(specifier, culture)) ' Displays: 163.26 % culture = CultureInfo.CreateSpecificCulture("ar-EG") Console.WriteLine((value/10000).ToString(specifier, culture)) ' Displays: 163.256 %
Комментарии
Метод ToString(String, IFormatProvider) форматирует Decimal значение в указанном формате указанного языка и региональных параметров. Если вы хотите использовать параметры формата или языка и региональных параметров по умолчанию, используйте другие перегрузки ToString метода следующим образом:
Использование формата | Для языка и региональных параметров | Использование перегрузки |
---|---|---|
Формат по умолчанию («G») | Язык и региональные параметры по умолчанию (текущий) | ToString() |
Формат по умолчанию («G») | Определенный язык и региональные параметры | ToString(IFormatProvider) |
Определенный формат | Язык и региональные параметры по умолчанию (текущий) | ToString(String) |
Параметр format может быть любым допустимым описателем стандартного числового формата, за исключением D, R и X, а также любой комбинацией описателей пользовательских числовых форматов. Если format имеет значение null или является пустой строкой, возвращаемое значение для этого экземпляра форматируется с помощью общего описателя числового формата («G»).
.NET предоставляет обширную поддержку форматирования, которая более подробно описана в следующих разделах форматирования:
- Дополнительные сведения об описателях числовых форматов см. в разделах Строки стандартного числового формата и Строки пользовательского числового формата.
- Дополнительные сведения о форматировании см. в разделе Типы форматирования.
Параметр provider является реализацией, IFormatProvider метод которой IFormatProvider.GetFormat возвращает NumberFormatInfo объект . Как правило, provider является NumberFormatInfo объектом или CultureInfo . Параметр provider предоставляет сведения о языке и региональных параметрах, используемых при форматировании. Если значение параметра provider равно null , используются текущий язык и региональные параметры потока.
См. также раздел
- Parse(String)
- Типы форматирования в .NET
- Строки стандартных числовых форматов
- Строки настраиваемых числовых форматов
- Практическое руководство. Добавление к числу начальных нулей
Преобразование строк в C#
Запросы типа «How to convert string to int C Sharp» или «Конвертация the string to int в Си» формулируются разработчиками, особенно новичками, достаточно часто. Далеко не всегда удается конвертировать один тип данных в другой. Это приводит к ошибкам работы приложения.
Сегодня предстоит более подробно рассмотреть преобразование строк в целочисленные значения. Предложенная далее информация будет полезна как новичкам, так и уже опытным специалистам. Она рассчитана на тех, кто уже занимался хотя бы поверхностной разработкой на рассматриваемом языке.
Терминология
Перед тем как изучать the converting to int, необходимо запомнить несколько ключевых определений. Они относятся не только to the C#, но и к других языкам разработки:
- Переменная – именованная область памяти. Она получает определенные значения, необходимые для дальнейшей работы в приложении.
- Тип данных – классификация информации одного и того же вида. Своеобразное «пояснение» компилятору, относительно выделяемой памяти и принципов обработки переменных и функций.
- Присваивание значения – процесс размещения в памяти необходимых данных.
У the C# поддерживаются различные виды информации. В зависимости от соответствующего параметра будет меняться принцип обработки имеющихся материалов.
Типы данных
The C# – язык программирования, который поддерживает множество встроенных типов. Большая часть из них являются специализированными. Они используются для реализации определенного спектра задач. Далее предстоит познакомиться с более распространенными видами информации.
The C# поддерживает следующие «стандартные» типы данных:
- число;
- строка;
- перечисление;
- класс;
- структуры.
Особое внимание будет уделено первым двум пунктам, а также процедуре под названием converting the string to the int.
Числа
Числовые значения в разработке встречаются очень часто. Это основной вид информации, с которой предстоит иметь дело каждому программисту. Числовые типы представлены в виде:
- Bool – булево число. Может принимать только два значения – true и false. Используется в качестве «флага» и применяется в циклах и ветвлениях.
- Char – символ. Диапазон значений – U+0000-U+FFFF.
- Дробные числа – они имеют плавающую запятую. Могут быть double, decimal и float. Выбирается конкретный вид дробных чисел в зависимости от необходимого диапазона значений. Чаще всего достаточно использовать the float.
- Целочисленные значения. Данный раздел является одним из самых крупных. Он может быть: sbyte (от -128 to 127), byte (from 0 to 255), short (-32 768 to 32 767), ushort (от 0 до 65 535), int (от -2 147 483 648 до 2 147 483 647), uint (0 to 4 294 967 295), long (-9 223 372 036 854 775 808 до 9 223 372 036 854 775 807) и ulong (от 0 to 18 446 744 073 709 551 615). Наиболее распространенным вариантом является int. Это обычное целое число с достаточно широким диапазоном принимаемых значений.
В процессе конвертации информации предстоит иметь дело с типом «строка». Он тоже встречается в разработке достаточно часто.
Строки в C#
Строка – объект типа the string. Его значением будет выступать текст. Внутри приложения текстовые сведения хранятся в виде упорядоченной коллекции объектов the char только для чтения. В конце строк в the C# отсутствуют символы, завершающие значения NULL. Это значит, что the string может включать в себя бесконечное количество внедренных NULL-символов (‘\0’).
Дополнительно здесь необходимо запомнить следующее:
- Свойство Length у the string полностью соответствует количество содержащихся внутри объектов Char, а не числу символов Unicode. Для получения доступа к кодовым точкам Юникода в строке используются объекты типа StringInfo.
- Строковые объекты to the C# являются неизменными после создания. Методы и операторы языка программирования не вносит в строку изменения. Они выполняют необходимые преобразования и возвращают в виде результата новый строковый компонент.
- В The C# поддерживаются строковые литералы в кавычках. Они будут начинаться и заканчиваться символом двойных кавычек. Используются для the strings, которые помещаются в один объект и не включают в себя escape-последовательности.
- Язык разработки поддерживает буквальные строковые литералы (verbatim). Они применяются to многостроковых строк, а также с компонентами, в состав которых входят символы обратных косых черт или внедрены двойные кавычки. Verbatim сохраняют новые символы строк с составе его текста. В буквальной строке двойные кавычки используются для вставки кавычек.
Начиная с C# 11, поддерживаются необработанные строковые литералы. Они упрощают создание to the string с несколькими строчками. При помощи таких объектов удается применять в коде любые символы, которые требуют escape-последовательностей.
Преобразование string to int: особенности
Входные данные в разработке часто выступают текстовыми полями. Введенная пользователем в приложении информация – это строка. Преобразование to int может потребоваться тогда, когда текстовое поле используется для указания числовых значений в приложении.
У платформы .NET Framework для конвертации используется специальный класс – Convert. Он разработан специально для работы с преобразования собственных типов. Числовые типы данных поддерживают методы для разбора the strings.
Класс Convert
Convert – специальный класс C#, который располагается в именном пространстве System. За счет него удается обеспечить конвертацию через статистические методы. Они могут быть вызваны без предварительного создания объекта.
Пользоваться классом the Convert нелегко из-за разницы в вызове собственных типов данных C# и базовых структур .NET Framework. Ниже можно увидеть ключевые слова, используемые для описания одних и тех же видов информации:
Для статических методов преобразования используется стандартизированный синтаксис:
- Сначала пишется «команда» – Convert, после которой ставится точка.
- Далее должно быть имя метода. Оно начинается с «to».
- После «to» указывается необходимое имя типа данных .NET.
Выше можно увидеть несколько наглядных преобразований: string to int, int to decimal, string to bool.
Метод the Convert может быть использован без предварительной ссылки на именное пространство System. Связано это с тем, что Visual автоматически активирует следующую строку в верхней части файла кода:
Данный метод позволяет указать компилятору на необходимость автоматического поиска именного пространства. Без директивы using исходных код приложения будет таким:
Convert используется для преобразований между числовыми типами. Пример – перевод числа с плавающей запятой в целое. В этом случае результат будет округлен до ближайшего целочисленного. Если дробная часть – это «полпути» между двумя целыми, система вернут ближайшее четное значение.
Работа с Parse
Еще один вариант конвертации – это использование метода Parse. Он более гибкий, потому что допускает указание стиля преобразования. Пример – конвертация валютных символов или шестнадцатеричных значений.
Parse является перегруженным, поэтому его можно вызвать несколькими способами. Каждый – со своим спектром параметров. Первый вариант – это использование вызова с одним параметром the string. Он включает в себя строку для дальнейшей работы.
Второй вариант вызова – с двумя параметрами. Он поддерживает не только string, но и перечисление на допустимое количество стилей (NumberStyles). Оно определено в SystemGlobalization. Рекомендуется в начале кода добавить строку:
Выше – пример использования Parse с двумя параметрами. Значения перечисления могут объединяться при помощи оператора OR (|). Этот прием позволяет использовать несколько стилей.
Теперь понятно, как происходит конвертация строк в целочисленные значения в C#. Лучше работать с различными типами информации помогут дистанционные компьютерные курсы.