|
2 / 2 / 2
Регистрация: 29.07.2012
Сообщений: 176
|
||||||
.NET 4.x Сравнение массива типа string с числом типа double29.07.2012, 22:41. Показов 2735. Ответов 17
Метки нет (Все метки)
Добрый день!
Проблема заключается в том,что нужно найти индекс максимального размера галактики. Само число хранится в двумерном массиве,первый столбец которого-название галактики,а второй-её размер. Массив типа string,для поиска ввёл переменную типа double. В строчке с циклом поиска, в условии if (ew<(Convert.ToDouble(mas[i,1]))) (55 строка) возникает исключение "Строка имела неверный входной формат" (или типа того). В массиве могут быть числа типа 21029.556(берутся из файла).Индекс максимального значения элемента используется,но не выводится. Пробовал точку заменить на запятую-не помогает. Вопрос,почему не получается так? И как можно это сделать по другому.
0
|
||||||
| 29.07.2012, 22:41 | |
|
Ответы с готовыми решениями:
17
Как сгенерировать случайное число типа я double имея на входе 2 числа типа double - минимальное и максимальное
|
| 29.07.2012, 22:49 | ||||||
|
размер обоих списков не обязательно одинаков, и элемент номер 3, например, в "галактиках" не обязательно соотверствует элементу 3 в размерах. это может случиться если, например,
Dictionary<string, double> и заполняй сразу из каждой строки по элементу, причем если и имя галактики, и размер удалось найти в строке, иначе обработай ошибку (выдай всю строку на консоль, например), и продолжай читать файл.
1
|
||||||
|
22 / 8 / 0
Регистрация: 13.07.2012
Сообщений: 66
|
|
| 29.07.2012, 22:50 | |
|
пробовали после чтения из файла вывести на экран то что получается? скорее всего она у вас некорректно читает и строки получаются неконвертируемые. ну это так на вскидку, что бы я первым делом проверил.
1
|
|
|
2 / 2 / 2
Регистрация: 29.07.2012
Сообщений: 176
|
|
| 30.07.2012, 07:05 [ТС] | |
|
Я смотрел в отладчике-первые три записи,которые обрабатываются,содержат число без точек. 4-я уже содержит число с точкой,и на этом моменте вылетает ошибка. Разве double точки не поддерживает?
Добавлено через 3 минуты novi4ok, сравнивал размерности size и galaxy -одинаковые Creative, хорошо,вечером проверю
0
|
|
|
60 / 60 / 6
Регистрация: 07.09.2010
Сообщений: 259
|
|
| 30.07.2012, 09:58 | |
|
Какой у вас разделитель между целой частью и дробной зависит от культуры в системе (если не указано обратное). Культуру можно посмотреть в Thread.CurrentThread.CurrentCulture а сам знак, кажется, в Thread.CurrentThread.CurrentCulture.Numb erFormat.CurrencyDecimalSeparator. Как вариант, можно перед конвертацией в число заменять вашу запятую на нужный символ. Либо установить свою культуру явно (где будет разделитель запятая).
Так же советую посмотреть метод double.TryParse
1
|
|
|
2 / 2 / 2
Регистрация: 29.07.2012
Сообщений: 176
|
|
| 30.07.2012, 10:40 [ТС] | |
|
servitola, точно,оказывается так и было,но не знаю почему,в отладчике при ручном изменении точки на запятую в условии возникала та-же ошибка...
Можно ли эту культуру изменить?
0
|
|
|
60 / 60 / 6
Регистрация: 07.09.2010
Сообщений: 259
|
|
| 30.07.2012, 11:12 | |
|
Можно. Для примера: Thread.CurrentThread.CurrentCulture = new CultureInfo("ru-RU")
То есть проще простого. Для ликбеза - существует параллельно свойство Thread.CurrentThread.CurrentUICulture. Задаёт используемую культуру в интерфейсе. Например, задаёт форматирование ваших строк в интерфейсе в соответствие с культурой в этом параметре. Можете погуглить на тему "WinForms локализация". ну и double.TryParse я вам указал потому, что там можно явно указать культуру, по которой парсить строку в число. Ну и не менять культуру всего приложения.
1
|
|
|
2 / 2 / 2
Регистрация: 29.07.2012
Сообщений: 176
|
|
| 30.07.2012, 21:30 [ТС] | |
|
0
|
|
|
4 / 4 / 0
Регистрация: 29.07.2012
Сообщений: 15
|
||||||
| 30.07.2012, 22:42 | ||||||
1
|
||||||
|
60 / 60 / 6
Регистрация: 07.09.2010
Сообщений: 259
|
|
| 30.07.2012, 23:19 | |
|
ну с такими вопросами к MSDN обычно стоит ))
полный путь System.Globalization.CultureInfo библиотека mscorlib.dll
1
|
|
|
2 / 2 / 2
Регистрация: 29.07.2012
Сообщений: 176
|
|
| 31.07.2012, 20:22 [ТС] | |
|
И в конце ещё вопросик,как можно обратиться к i-ому символу массива mas[j,k]? Например считать его,изменить?
Добавлено через 5 минут Vadim39, протестил ваш код,и (по крайней мере) в последних 10-30 записях для каждой i-ой галактики показывается i+1-ый размер,соответственно последнюю галактику программа обработать не может. Но это уже не важно...
0
|
|
|
60 / 60 / 6
Регистрация: 07.09.2010
Сообщений: 259
|
||||||
| 01.08.2012, 11:29 | ||||||
|
почему бы не сделать вот так:
0
|
||||||
|
2 / 2 / 2
Регистрация: 29.07.2012
Сообщений: 176
|
|
| 01.08.2012, 13:04 [ТС] | |
|
servitola, не,мне это уже не нужно...не охота засорять форум темами для которых требуется короткий ответ,поэтому сейчас мне интересно, как можно ли обратиться к символу строки в массиве строк?
0
|
|
|
713 / 680 / 126
Регистрация: 30.03.2012
Сообщений: 1,124
|
|||||||
| 01.08.2012, 13:05 | |||||||
|
да Добавлено через 49 секунд
1
|
|||||||
|
2 / 2 / 2
Регистрация: 29.07.2012
Сообщений: 176
|
|
| 01.08.2012, 13:50 [ТС] | |
|
Tessen, а в двумерном? Или n-мерном?
0
|
|
|
60 / 60 / 6
Регистрация: 07.09.2010
Сообщений: 259
|
|
| 01.08.2012, 14:17 | |
|
а в чем проблема? то же самое будет считай:
sm[a][b][c][d]
1
|
|
|
2 / 2 / 2
Регистрация: 29.07.2012
Сообщений: 176
|
|
| 01.08.2012, 16:40 [ТС] | |
|
servitola, проблема в том,что у меня почему-то так не получалось...Видно надо книги почитать. Всем спасибо,тему можно закрывать.
0
|
|
|
60 / 60 / 6
Регистрация: 07.09.2010
Сообщений: 259
|
|
| 01.08.2012, 17:55 | |
|
ну надо посмотреть реализует ли список, который вы используете индексатор. к примеру, у List есть индексатор, а у простого IEnumerable<> его нет. выше я привел пример как сделать свой список вам нужных объектов с индексатором, которому передаешь не номер по порядку, а строку...но, кстати, индексатор по номеру он уже имеет от List, от которого наследуется
0
|
|
| 01.08.2012, 17:55 | |
|
Помогаю со студенческими работами здесь
18
Перевод массива типа double в string
Как конвертировать переменную типа Double в переменную типа String? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Символьное дифференцирование
igorrr37 13.02.2026
/ *
Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет
значение производной при заданном х
Логарифм записывается как: (x-2)log(x^2+2) -. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
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 с альфа-каналом (с прозрачным. . .
|