86 / 13 / 1
Регистрация: 24.05.2010
Сообщений: 590
|
||||||||||||||||
1 | ||||||||||||||||
.NET 4.x Можно ли заставить double.Parse обрабатывать числа с разными разделителями?21.06.2018, 16:37. Показов 4911. Ответов 22
Метки нет (Все метки)
Привет!
Есть фреймворк, который подключен к проекту в виде библиотеки. В одном из сценариев работы фреймвор должен преобразовать строку в число типа double. Выглядит это как-то так:
Полазив по исходникам я надыбал такое:
Вопрос: можно ли какими-то настройками (проекта, операционной системы, среды CLR или чего-либо на компе) добиться того, что бы операция double.Parse корректно работала и с точкой (10.5) и с запятой (10,5).
0
|
21.06.2018, 16:37 | |
Ответы с готовыми решениями:
22
Разделить строку с 2-мя разными разделителями JSON.parse() не хочет обрабатывать данные, полученные из php Прочитать данные из многоуровневой вложенной структуры файлов с разными разделителями Заставить chrome обрабатывать протоколы tel: и callto: |
17793 / 12944 / 3381
Регистрация: 17.09.2011
Сообщений: 21,226
|
||||||
21.06.2018, 16:57 | 2 | |||||
Пробуйте распарсить сначала так, потом эдак:
1
|
86 / 13 / 1
Регистрация: 24.05.2010
Сообщений: 590
|
|
25.06.2018, 09:11 [ТС] | 3 |
kolorotur, ну это немножко не то . Оно парсится внутри фреймворка и влезть туда я не могу. Думал, может можно как-то настройками ОС или чего-то ещё повлиять на этот процесс. Но если этого сделать нельзя, то придется, наверное, отказаться от использования функции фреймворка (в конкретном сценарии) и самому брать строку и обрабатывать её. Для этого с радостью воспользуюсь вашим кодом . Не хотелось этого делать, т.к. помимо самой обработки придется описывать логику работы в случае если ввели какую-то ерунду и ещё некоторые моменты. Спасибо за ответ!
0
|
17793 / 12944 / 3381
Регистрация: 17.09.2011
Сообщений: 21,226
|
|
25.06.2018, 09:47 | 4 |
В чем именно не то?
Вы спросили: Вышеприведенный метод делает именно это. Можно, но в данном случае не нужно. Приведенный метод это все учитывает.
0
|
17793 / 12944 / 3381
Регистрация: 17.09.2011
Сообщений: 21,226
|
|
25.06.2018, 10:10 | 6 |
Понял, похоже невнимательно вопрос прочитал.
Спасибо! V0fka, если у вас есть доступ к введенной строке до того, как она будет передана в посторонний метод, то как вариант вы можете перед передачей сконвертировать ее в double, используя приведенный выше метод, а во фреймворк передавать уже распарсенное значение, снова сконвертированное в строку — чтобы оно имело вид, который может быть распарсен при текущих региональных настройках. Параллельно можно сообщить об этом баге разработчикам фреймворка.
0
|
25.06.2018, 10:21 | 7 |
Сообщение было отмечено V0fka как решение
Решение
Нет у него доступа, походу.
Вызывает метод показа окна для ввода текста, и уже оно использует где-то внутри этот метод с культурой потока. Можно костылями смены культуры потока обложить этот вызов, но чую это чревато багами. Да и 2 варианта сразу не проверишь.
2
|
17793 / 12944 / 3381
Регистрация: 17.09.2011
Сообщений: 21,226
|
|
25.06.2018, 10:37 | 8 |
Мде, это называется "смотрю в книгу — вижу фигу"
Написано же в первом сообщении: На пенсию мне пора... Ну тогда остается либо действительно изменять культуру потока, либо ловить исключение и выводить сообщение об ошибке. Опционально в сообщении об ошибке можно указать "правильный" формат, взяв любое десятичное число и сконвертировать его в строку с учетом текущей культуры.
0
|
249 / 162 / 68
Регистрация: 10.12.2017
Сообщений: 558
|
|
25.06.2018, 12:51 | 9 |
реально эта фича c# очень-очень бесит, да что там таить, куда не посмотри он везде такой какой-то не до
0
|
249 / 162 / 68
Регистрация: 10.12.2017
Сообщений: 558
|
|
25.06.2018, 13:58 | 11 |
Rius, нет, не согласен
0
|
25.06.2018, 14:10 | 12 |
Значит, вам ещё не приходилось писать софт для разных языков.
А согласен или нет - не важно. Фичу делали не от балды, а с определённой целью, для поддержки мультикультурности. И это фича библиотеки, а не самого языка.
0
|
249 / 162 / 68
Регистрация: 10.12.2017
Сообщений: 558
|
|
25.06.2018, 14:19 | 13 |
Rius, ) первый язык который действительно понял это был ассемблер z80 + потом с тем же успехом x86 + потом всякие java, php, javascript... с общим стажем больше 20лет ) - и для себя я выбираю javascript, и поэтому я говорю, что c# криволапая поделка, и это мое ИМХО, я не согласен
0
|
25.06.2018, 14:21 | 14 |
Evgen1337, что вы там выбираете, это ваши проблемы. Состояние разработки на JS хорошо показывает статья Каково оно учить JavaScript в 2016
0
|
249 / 162 / 68
Регистрация: 10.12.2017
Сообщений: 558
|
|
25.06.2018, 14:24 | 15 |
Rius, на дворе 18 год, живите дальше в далеком прошлом... и ваши проблемы тоже никого не бум бум...
0
|
3683 / 2594 / 719
Регистрация: 02.08.2011
Сообщений: 6,964
|
|
25.06.2018, 14:32 | 16 |
На каком-то DotNext-е Дмитрий Сошников упоминал о том, что "backend разработка на js - для извращенцев".
0
|
249 / 162 / 68
Регистрация: 10.12.2017
Сообщений: 558
|
||||||
25.06.2018, 14:46 | 18 | |||||
Rius, костыльного в 2018 году, ай да молодец, в этом сниппете весь c#
0
|
249 / 162 / 68
Регистрация: 10.12.2017
Сообщений: 558
|
|
25.06.2018, 14:58 | 20 |
Rius, короче на и по
0
|
25.06.2018, 14:58 | |
25.06.2018, 14:58 | |
Помогаю со студенческими работами здесь
20
как заставить PWS[win98] обрабатывать asp??? Как заставить обработчик KeyDown обрабатывать клавиши Up и Down? Как заставить GPU обрабатывать видео вместо CPU? Как заставить html-страницы обрабатывать PHP код? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи | |||||
Книги и учебные ресурсы по C#
InfoMaster 08.01.2025
Базовые учебники и руководства
Одной из лучших книг для начинающих является "C# 10 и . NET 6 для начинающих" Эндрю Троелсена и Филиппа Джепикса . Книга последовательно раскрывает основные концепции. . .
|
Что такое NullReferenceException и как исправить?
InfoMaster 08.01.2025
NullReferenceException - одно из самых распространенных исключений, с которым сталкиваются разработчики на C#. Это исключение возникает при попытке обратиться к членам объекта (методам, свойствам или. . .
|
Что такое Null Pointer Exception (NPE) и как это исправить?
InfoMaster 08.01.2025
Null Pointer Exception (NPE) - это одно из самых распространенных исключений в Java, которое возникает при попытке использовать ссылку на объект, значение которой равно null. Это исключение относится. . .
|
Русский язык в консоли C++
InfoMaster 08.01.2025
При разработке программ на C++ одной из частых проблем, с которой сталкиваются русскоязычные программисты, является корректное отображение кириллицы в консольных приложениях. Эта проблема особенно. . .
|
Telegram бот на C#
InfoMaster 08.01.2025
Разработка ботов для Telegram стала неотъемлемой частью современной экосистемы мессенджеров. C# предоставляет мощный и удобный инструментарий для создания разнообразных ботов, от простых. . .
|
Использование GraphQL в Go (Golang)
InfoMaster 08.01.2025
Go (Golang) является одним из наиболее популярных языков программирования, используемых для создания высокопроизводительных серверных приложений. Его архитектурные особенности и встроенные. . .
|
Что лучше использовать при создании класса в Java: сеттеры или конструктор?
Alexander-7 08.01.2025
Вопрос подробнее:
На вопрос: «Когда одновременно создаются конструктор и сеттеры в классе – это нормально?» куратор уточнил: «Ваш класс может вообще не иметь сеттеров, а только конструктор и геттеры. . .
|
Как работать с GraphQL на TypeScript
InfoMaster 08.01.2025
Введение в GraphQL и TypeScript
В современной разработке веб-приложений GraphQL стал мощным инструментом для создания гибких и эффективных API. В сочетании с TypeScript, эта технология. . .
|
Счётчик на базе сумматоров + регистров и генератора сигналов согласования.
Hrethgir 07.01.2025
Создан с целью проверки скорости асинхронной логики: ранее описанного сумматора и предополагаемых fast регистров. Регистры созданы на базе ранее описанного, предполагаемого fast триггера. То-есть. . .
|
Как перейти с Options API на Composition API в Vue.js
BasicMan 06.01.2025
Почему переход на Composition API актуален
В мире современной веб-разработки фреймворк Vue. js продолжает эволюционировать, предлагая разработчикам все более совершенные инструменты для создания. . .
|
Архитектура современных процессоров
inter-admin 06.01.2025
Процессор (центральный процессор, ЦП) является основным вычислительным устройством компьютера, которое выполняет обработку данных и управляет работой всех остальных компонентов системы. Архитектура. . .
|
История создания реляционной модели баз данных, правила Кодда
Programming 06.01.2025
Предпосылки создания реляционной модели
В конце 1960-х годов компьютерная индустрия столкнулась с серьезными проблемами в области управления данными. Существовавшие на тот момент модели данных -. . .
|