Парсинг данных ломается на нестандартных локалях.

OsEngine\Entity\Security.cs содержит локалезависимый код.

  1. cashbot

    Регистрация:
    03.09.19
    Сообщения:
    1
    Был на сайте:
    03.09.19

    На машине в русской локали изменен decimal separator на '.' (как у всякого уважающего себя программиста :))

    В результате следующий код

    -------------project\OsEngine\Entity\Security.cs---------
    string step = Convert.ToDecimal(Convert.ToDouble(PriceStep)).ToString(new CultureInfo("ru-RU"));
    _decimals = step.Split(',')[1].Length;
    ---------------------------------------------------------

    при подключении к Binance кидает исключение за неимением искомой ','

    Предлагаемый локаленезависимый фикс:

    -------------project\OsEngine\Entity\Security.cs---------
    string step = Convert.ToDecimal(Convert.ToDouble(PriceStep)).ToString(CultureInfo.InvariantCulture);
    _decimals = step.Split('.')[1].Length;
    ---------------------------------------------------------
    cashbot
    03.09.2019 03:00
    #1
  2. xenn33

    Регистрация:
    27.10.22
    Сообщения:
    4
    Был на сайте:
    09.11.23

    Скажу больше, в 2022г попробовал последний гитхабовский билд на американской локали - скачивание данных работает, но дальше сет становится недоступен т.к. программа не может подгрузить его. В коде есть 3 проблемы (в порядке их серьёзности):

    1) Какой-то из потоков постоянно перетирает формат разделителя с точки на слэш или наоборот

    2) В американской локали первая цифра - месяц

    3) Вообще в коде очень много где хард-код локали "RU-ru" и именно этот факт препятствует сделать нормальный фикс и пулл реквест - неизвестно что может еще поломаться в десятках других мест где локаль зафиксирована

    Как решил проблему....поменял локаль на своей машине на русскую т.к. возиться больше двух недель с этой проблемой больше желания не быыло.

     

    xenn33
    28.10.2022 16:37
    #2