Форум программистов, компьютерный форум, киберфорум
C++/CLI Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/15: Рейтинг темы: голосов - 15, средняя оценка - 5.00
 Аватар для Mars30
13 / 13 / 1
Регистрация: 16.12.2010
Сообщений: 265

Преобразование данных из DataGridView в double

24.06.2017, 11:58. Показов 3251. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день!
Столкнулась с проблемой получения данных из DataGridView(dg1), а точнее с последующим преобразованием строки из ячейки в тип double. У меня никаких идей нет, почему этот код не работает, TryParse не может преобразовывать строку и возвращает 0.
C++
1
2
3
4
5
6
7
8
9
10
11
12
        int count_chim_el = N2;
        int count_comp = N1;
        double **comp_ore = new double* [count_chim_el]; // создание динамического массива с хим.составом компонентов рудной смеси
        for (int count = 0; count < count_chim_el; count++)
            comp_ore[count] = new double [count_comp]; 
 
        for(int i = 1; i < count_chim_el; i++)
            for (int j = 1; j < count_comp; j++) {
                    String ^ st2;
                    st2 = dg1->Rows[j]->Cells[i]->FormattedValue->ToString();
                    double::TryParse(st2, comp_ore[i][j]);
            }
Весь проект в архиве по ссылке http://rgho.st/86cFN6tTR. Пишу на VS 2010.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.06.2017, 11:58
Ответы с готовыми решениями:

Преобразование строки в double
Здравствуйте! У меня следующий вопрос: На форме есть textBox1. Там введена цифра (считаем что она введена правильно, например 0.1) Как...

Преобразование System::String ^ в Double
Такой код: System::String ^a = &quot;12345&quot;; double b = a-&gt;ToDouble(); - приводит к ошибке: error C2039: ToDouble: не является членом...

Преобразование string в double и обратно
День добрый! подскажите что я делаю неправильно if (String^ s = stream-&gt;ReadLine()) x2 = Convert::ToDouble(s); ...

5
 Аватар для Sklifosofsky
1086 / 916 / 213
Регистрация: 29.09.2015
Сообщений: 1,019
24.06.2017, 13:57
C++
1
2
3
4
5
6
    for(int i = 0; i < count_chim_el; i++) //вы тут с индексами отсчета напутали, скорее всего. От 0 надо, а потом подстраиваться под таблицу
        for (int j = 0; j < count_comp; j++) {
                String ^ st2;
                st2 = dg1->Rows[j]->Cells[i+1]->FormattedValue->ToString();// i+1 т.к. я так понял считаете от 2-го столбца
                double::TryParse(st2, comp_ore[i][j]);
        }
Это все касательно этого куска кода
0
 Аватар для Mars30
13 / 13 / 1
Регистрация: 16.12.2010
Сообщений: 265
24.06.2017, 14:36  [ТС]
Sklifosofsky, я уже исправила эту ошибку, а все равно при переводе нули одни
уже так даже код написала
C++
1
2
3
4
5
6
        for(int i = 1; i < count_chim_el+1; i++)
            for (int j = 0; j < count_comp; j++) {
                    String ^ st2;
                    st2 = dg1->Rows[j]->Cells[i]->FormattedValue->ToString();
                    comp_ore[i-1][j]=Convert::ToDouble(st2);            
            }
Появляется такое сообщение: "An unhandled exception of type 'System.FormatException' occurred in mscorlib.dll
Additional information: Входная строка имела неверный формат."
0
 Аватар для Sklifosofsky
1086 / 916 / 213
Регистрация: 29.09.2015
Сообщений: 1,019
24.06.2017, 15:01
Лучший ответ Сообщение было отмечено Mars30 как решение

Решение

Знак разделителя какой? Да и формат?
Возможно требуется "," вместо "." или наоборот, но все зависит от установок системы, на разных компах бывают различия. Приходится принудительно менять знак при помощи команды [Строка]->Replace(",", ".") и конвертировать [Double]=Convert::ToDouble([Строка], System::Globalization::CultureInfo::Inva riantCulture), последний параметр указывает на стандартные международные региональные настройки, где "." является знаком разделителя
1
 Аватар для Mars30
13 / 13 / 1
Регистрация: 16.12.2010
Сообщений: 265
24.06.2017, 15:10  [ТС]
Sklifosofsky, обалдеть, и правда так, надо было в DataGridView вводит вещественные числа через запятую, а в итоге в double конвертируется с точкой. Я и подумать не могла, что разработчики visual studio такие не последовательные, просидела всю ночь с этим. Спасибо
0
 Аватар для Sklifosofsky
1086 / 916 / 213
Регистрация: 29.09.2015
Сообщений: 1,019
24.06.2017, 15:30
Цитата Сообщение от Mars30 Посмотреть сообщение
DataGridView вводит вещественные числа через запятую
Mars30, а не других компьютерах приходится вводить ".". Поэтому учтите вариант с принудительной замены знака

Добавлено через 3 минуты
Цитата Сообщение от Mars30 Посмотреть сообщение
разработчики visual studio такие не последовательные
Они старались сделать более универсальный способ работы с данными для разных региональных требований. По незнанию таких особенностей можно споткнуться очень серьёзно
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.06.2017, 15:30
Помогаю со студенческими работами здесь

Преобразование типов String->Double
Есть задача для калькулятора, сосчитать к примеру вот: 10.34+4.9 хочу преобразовать из String (textBox1-&gt;Text) в Double ...

Преобразование string в массив double
Здравствуйте! Подскажите пожалуйста,как корректно преобразовать строковой массив в массив типа double. Проект Win32 Desktop Читаю...

Преобразование в типа данных double
Господа ученые, доценты с кандидатами )) вопрос такой, точнее продолжение начатой раньше темы, поскольку окончательно победить не...

Преобразование данных массива из string в double
Товарищи, помогите пожалуйста! Необходимо считать построчно числовые данные из файла и в конечном итоге сформировать из них массив с...

Преобразование типов данных из DataGridView перед обработкой
Доброго времени суток. Помогите разобраться в чем ошибка. Есть DataGridView, имеющая три колонки, заполняемая из таблицы в текстовом...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru