2016-03-13 7 views
0

Я работаю над WPF-приложением, так что в пользовательском интерфейсе есть комбинированное поле, которое позволяет пользователю выбирать культуру из выпадающего списка, а затем на основе какой культуры выбирает пользователь. Я хочу преобразовать числовую string в существующей культуре к той, которую пользователь выбирает из комбинированного поля. Например, 2325 655,65 (формат США) против 2,325,655,65 (европейский формат).Как преобразовать числовую строку в формате США в цифровую строку в европейском формате?

Как это сделать в C#?

Это то, что я пытался до сих пор

using System; 
using System.Globalization; 

namespace Programs { 
    public class ConvertCulture { 
     public static void Main(string[] args) { 
      Console.Write("Please enter a number : "); 
      var number = Console.ReadLine(); 
      var doubleValue = double.Parse(number); 
      var culture = CultureInfo.CreateSpecificCulture("es-ES"); 
      Console.WriteLine(doubleValue.ToString("N", culture)); 
      Console.ReadKey(); 
     } 
    } 
} 
+0

Как вы заполнить эти строки? – Valentin

+0

Его динамическое заполнение приложением, но этот рабочий процесс разработан, мне просто нужно работать над преобразованием, я пробовал его кодировать, но он не работает должным образом, за исключением следующей культуры es-ES – AnkitSablok

+1

Возможный дубликат: http: //stackoverflow.com/questions/1559185/formatting-numbers-as-strings-with-commas-in-place-of-decimals –

ответ

0

Используйте формат валюты спецификатор C. Here's документации MSDN.

Например:

double value = 12345.6789; 
Console.WriteLine(value.ToString("C", CultureInfo.CurrentCulture)); 
Console.WriteLine(value.ToString("C3", CultureInfo.CurrentCulture)); 
Console.WriteLine(value.ToString("C3", CultureInfo.CreateSpecificCulture("da-DK"))); 

// The example displays the following output on a system whose 
// current culture is English (United States): 
//  $12,345.68 
//  $12,345.679 
//  kr 12.345,679 
Смежные вопросы