...

Преобразование строки в дробное число

Тема в разделе "Разработчикам", создана пользователем nvin, 7 июл 2017.

  1. nvin

    nvin New Member

    Как в сценарии написать преобразование из типа Строка в тип Дробное число?

    Преобразование по коду ниже работает только для целых значений. При вводе десятичного разделителя "точка" или "запятая", функции Convert не работают.
    --------------
    context.Double_Output = Convert.ToDouble(context.String_Input);
    context.Decimal_Output = double.Parse(context.String_Input);
    context.Float_Output = float.Parse(context.String_Input);
     
  2. akarimov

    akarimov Member

    Десятичный разделитель берется из настроек системы. Посмотреть его можно так
    using System.Globalization;
    CultureInfo inf = new CultureInfo(System.Threading.Thread.CurrentThread.CurrentCulture.Name);
    var separator = inf.NumberFormat.NumberDecimalSeparator;

    Для подстраховки от неправильного ввода можно принудительно заменять точки/запятые на этот разделитель
    string dot = "1.1";
    string comma = "1,1";
    double ddot = double.Parse(dot.Replace(".",separator));
     
  3. akarimov

    akarimov Member

    По идее сработает и так
    var ddot=double.Parse(dot, CultureInfo.InvariantCulture)
     
    1 это нравится
  4. nvin

    nvin New Member

    Спасибо! Помог этот вариант:
    var ddot=double.Parse(dot, CultureInfo.InvariantCulture)
     

Поделиться: