locked
Замена точки запятой в WP8 RRS feed

  • Вопрос

  • Надо сделать замену точки на запятую .

      Double ax = Convert.ToInt32(a.Text);
                Double bx = Convert.ToInt32(b.Text);
                Double cx = Convert.ToDouble(c.Text);
    Реплейс не помог
    c.Replace(".", ",");

    11 сентября 2013 г. 5:29

Ответы

  • Double c_num = Convert.ToDouble(c.Text, System.Globalization.CultureInfo.InvariantCulture)

    • Помечено в качестве ответа Panda_Gun 11 сентября 2013 г. 12:22
    11 сентября 2013 г. 12:13

Все ответы

  • var clearedTextFromTextbox = c.Text.Replace(".", ",");
    В c# строки являются неизменяемыми, поэтому операция Replace возвращает новую строку, которую нужно присвоить переменной.



    • Предложено в качестве ответа Dmitriy VereshchakMicrosoft contingent staff 11 сентября 2013 г. 6:38
    • Изменено Oleg Kurzov 11 сентября 2013 г. 10:44
    • Помечено в качестве ответа Panda_Gun 11 сентября 2013 г. 10:45
    • Снята пометка об ответе Panda_Gun 11 сентября 2013 г. 10:48
    11 сентября 2013 г. 6:28
  • "System.Windows.Controls.TextBox" не содержит определения для "Replace" и не был найден метод расширения "Replace", принимающий тип "System.Windows.Controls.TextBox" в качестве первого аргумента (возможно, пропущена директива using или ссылка на сборку) 112 19
    11 сентября 2013 г. 10:29
  • "System.Windows.Controls.TextBox" не содержит определения для "Replace" и не был найден метод расширения "Replace", принимающий тип "System.Windows.Controls.TextBox" в качестве первого аргумента (возможно, пропущена директива using или ссылка на сборку) 112 19

    Этот метод для string и свойства TextBox.Text
    11 сентября 2013 г. 10:39
  • Спасибо, отредактировал сообщение.
    11 сентября 2013 г. 10:44
  • 11 сентября 2013 г. 10:49
  • Попробуйте:

     string text = "134,55";
                text = text.Replace(",", ".");
                double num = Double.Parse(text, CultureInfo.InvariantCulture);
    и еще, у Вас же идет обработка символов? В TextBox можно ведь ввести "ABC133,44" и Double.Parse выдаст исключение. Вам или нужно обработать символы или использовать TryParse

    11 сентября 2013 г. 10:59
  • Программа под виндовс фон 7.1 

     InputScope="Number"

    Есть только 1-9 и точка . Так вопрос в том как сделать чтобы число на пример 19.123 выглядело как 19,123 .

    11 сентября 2013 г. 11:20
  • Где именно выглядело, при вводе в текстбоксе?
    • Изменено Oleg Kurzov 11 сентября 2013 г. 11:43
    11 сентября 2013 г. 11:42
  • Когда смена из стринг в добл .
    11 сентября 2013 г. 11:46
  • То есть что бы в коде в полученной строке было 19,22 (с запятой), а не 19.22(с точкой) и Вы это число могли распарсить в double ?

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

    11 сентября 2013 г. 12:05
  • По умолчанию преобразование числа в строку и наоборот выполняется в соответствии с текущими региональными установками системы. В русском языке целую и дробную части принято разделять запятой, поэтому метод Convert.ToDouble и ожидает запятую в строке, а не точку. Никакой замены символов Вам не потребуется, если Вы воспользуетесь другим перегруженным методом ToDouble (с двумя параметрами). Во втором параметре передайте следующее: System.Globalization.CultureInfo.InvariantCulture. Тем самым вы указываете методу, что региональные настройки использовать не нужно.
    • Предложено в качестве ответа kosuke904 11 сентября 2013 г. 12:07
    11 сентября 2013 г. 12:07
  • Как в коде оформить , скрин выше . 
    11 сентября 2013 г. 12:11
  • Double c_num = Convert.ToDouble(c.Text, System.Globalization.CultureInfo.InvariantCulture)

    • Помечено в качестве ответа Panda_Gun 11 сентября 2013 г. 12:22
    11 сентября 2013 г. 12:13
  • Естественно, если подобные преобразования в коде встречаются часто, можно вынести System.Globalization в using
    11 сентября 2013 г. 12:15
  • Спасибо. using System.Globalization.CultureInfo.InvariantCulture ? 
    • Изменено Panda_Gun 11 сентября 2013 г. 12:29
    11 сентября 2013 г. 12:29
  • Нет.

    using System.Globalization;

    А в вызове метода оставить только CultureInfo.InvariantCulture

    11 сентября 2013 г. 12:30
  • Хотя такой вызов небезопасен. Пользователь может все, что угодно написать в TextBox-е. Лучше посмотрите на метод Double.TryParse!
    11 сентября 2013 г. 12:36
  • Пусть попробует.

    11 сентября 2013 г. 12:40