|
86 / 13 / 1
Регистрация: 24.05.2010
Сообщений: 590
|
||||||||||||||||
.NET 4.x Можно ли заставить double.Parse обрабатывать числа с разными разделителями?21.06.2018, 16:37. Показов 5449. Ответов 22
Метки нет (Все метки)
Привет!
Есть фреймворк, который подключен к проекту в виде библиотеки. В одном из сценариев работы фреймвор должен преобразовать строку в число типа double. Выглядит это как-то так:
Полазив по исходникам я надыбал такое:
Вопрос: можно ли какими-то настройками (проекта, операционной системы, среды CLR или чего-либо на компе) добиться того, что бы операция double.Parse корректно работала и с точкой (10.5) и с запятой (10,5).
0
|
||||||||||||||||
| 21.06.2018, 16:37 | |
|
Ответы с готовыми решениями:
22
Разделить строку с 2-мя разными разделителями JSON.parse() не хочет обрабатывать данные, полученные из php Прочитать данные из многоуровневой вложенной структуры файлов с разными разделителями |
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
|||||||
| 21.06.2018, 16:57 | |||||||
1
|
|||||||
|
86 / 13 / 1
Регистрация: 24.05.2010
Сообщений: 590
|
|
| 25.06.2018, 09:11 [ТС] | |
|
kolorotur, ну это немножко не то
. Оно парсится внутри фреймворка и влезть туда я не могу. Думал, может можно как-то настройками ОС или чего-то ещё повлиять на этот процесс. Но если этого сделать нельзя, то придется, наверное, отказаться от использования функции фреймворка (в конкретном сценарии) и самому брать строку и обрабатывать её. Для этого с радостью воспользуюсь вашим кодом . Не хотелось этого делать, т.к. помимо самой обработки придется описывать логику работы в случае если ввели какую-то ерунду и ещё некоторые моменты. Спасибо за ответ!
0
|
|
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
|||||
| 25.06.2018, 09:47 | |||||
|
Вы спросили:
0
|
|||||
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
||
| 25.06.2018, 10:10 | ||
|
Спасибо! V0fka, если у вас есть доступ к введенной строке до того, как она будет передана в посторонний метод, то как вариант вы можете перед передачей сконвертировать ее в double, используя приведенный выше метод, а во фреймворк передавать уже распарсенное значение, снова сконвертированное в строку — чтобы оно имело вид, который может быть распарсен при текущих региональных настройках. Параллельно можно сообщить об этом баге разработчикам фреймворка.
0
|
||
|
|
|
| 25.06.2018, 10:21 | |
Сообщение было отмечено V0fka как решение
Решение
Нет у него доступа, походу.
![]() Вызывает метод показа окна для ввода текста, и уже оно использует где-то внутри этот метод с культурой потока. Можно костылями смены культуры потока обложить этот вызов, но чую это чревато багами. Да и 2 варианта сразу не проверишь.
2
|
|
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
|||
| 25.06.2018, 10:37 | |||
![]() Написано же в первом сообщении: Ну тогда остается либо действительно изменять культуру потока, либо ловить исключение и выводить сообщение об ошибке. Опционально в сообщении об ошибке можно указать "правильный" формат, взяв любое десятичное число и сконвертировать его в строку с учетом текущей культуры.
0
|
|||
|
249 / 162 / 68
Регистрация: 10.12.2017
Сообщений: 558
|
|
| 25.06.2018, 12:51 | |
|
реально эта фича c# очень-очень бесит, да что там таить, куда не посмотри он везде такой какой-то не до
0
|
|
|
249 / 162 / 68
Регистрация: 10.12.2017
Сообщений: 558
|
|
| 25.06.2018, 13:58 | |
|
Rius, нет, не согласен
0
|
|
|
|
|
| 25.06.2018, 14:10 | |
|
Значит, вам ещё не приходилось писать софт для разных языков.
А согласен или нет - не важно. Фичу делали не от балды, а с определённой целью, для поддержки мультикультурности. И это фича библиотеки, а не самого языка.
0
|
|
|
249 / 162 / 68
Регистрация: 10.12.2017
Сообщений: 558
|
|
| 25.06.2018, 14:19 | |
|
Rius, ) первый язык который действительно понял это был ассемблер z80 + потом с тем же успехом x86 + потом всякие java, php, javascript... с общим стажем больше 20лет ) - и для себя я выбираю javascript, и поэтому я говорю, что c# криволапая поделка, и это мое ИМХО, я не согласен
0
|
|
|
|
|
| 25.06.2018, 14:21 | |
|
Evgen1337, что вы там выбираете, это ваши проблемы. Состояние разработки на JS хорошо показывает статья Каково оно учить JavaScript в 2016
0
|
|
|
249 / 162 / 68
Регистрация: 10.12.2017
Сообщений: 558
|
|
| 25.06.2018, 14:24 | |
|
Rius, на дворе 18 год, живите дальше в далеком прошлом... и ваши проблемы тоже никого не бум бум...
0
|
|
|
4694 / 2702 / 734
Регистрация: 02.08.2011
Сообщений: 7,228
|
|
| 25.06.2018, 14:32 | |
|
На каком-то DotNext-е Дмитрий Сошников упоминал о том, что "backend разработка на js - для извращенцев".
0
|
|
|
249 / 162 / 68
Регистрация: 10.12.2017
Сообщений: 558
|
||||||
| 25.06.2018, 14:46 | ||||||
|
Rius, костыльного в 2018 году, ай да молодец, в этом сниппете весь c#
0
|
||||||
|
249 / 162 / 68
Регистрация: 10.12.2017
Сообщений: 558
|
|
| 25.06.2018, 14:58 | |
|
Rius, короче на и по
0
|
|
| 25.06.2018, 14:58 | |
|
Помогаю со студенческими работами здесь
20
Заставить Chrome обрабатывать протоколы tel: и callto: как заставить PWS[win98] обрабатывать asp???
Как заставить GPU обрабатывать видео вместо CPU? Как заставить html-страницы обрабатывать PHP код? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога
Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
|
|
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога
Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|