[C++/.NET] текст из TextBox-а в double

puare

Господа, вот скажем есть у меня на форме TextBox с именем, ну, скажем, myTextBox. Далее,
 myTextBox->Text 
вернет мне то, что в нем написано в виде System::String, так? Вроде так. Усложняем задачу. Теперь мне нужно переконвертить это знаечение в double. Делаю
double value = Convert::ToDouble(myTextBox->Text)  
В итоге получаю почему-то 0.0 ... В чем могут быть грабли?
 
P.S. да, и еще, не подскажете, где в инете можно что-нить почитать про цпп и НЕТ? Какой-нить вменяемый учебник, не очень примитивный, но все же.
Заранее спасибо за ответы.

Dasar

> double value = Convert::ToDouble(myTextBox->Text)
правильнее:

double value = System::Double::Parse(myTextBox->Text);

puare

Спасибо, попробую. А относительно вменяемых руководств ничего не посоветуешь? По C#,NET,C++ STL и прочим радостям жизни. Если не ссылки на тексты книг, то хотя бы их названия?

Dasar

Начальная по .Net-у: Троельсен.
по C++: Страуструп
внутренности .net-а и winapi: Рихтер

puare

а такого вообще-то нет. по крайней мере у меня...
 error C2039: 'Parse' : is not a member of 'System'

ты
System::Double::Parse  
подразумевал?
upd: так тоже не работает. Куда дальше копать?

Dasar

это были глюки форума.

puare

не помогает... возможно, я криво вывожу? Выглядит это так:

double baseValue = System::Double::Parse(this->textBox3->Text);
...
_stprintf(_title, "a = %.3f\nb = %.2f\nc = %.1f\nextreme = %d\nbase value = %.3f", pVDC->GetAlpha(a
pVDC->GetBeta(b pVDC->GetGamma(c pVDC->GetExtremeIndex baseValue);

при этом в текстбокс вводится значение 1,72. На выходе я получаю -0.000

Dasar

скорее всего - ошибка где-то в другом месте

puare

дык фишка в том, что код в посте выше - единственный, который использует baseValue, т.е. измениться она нигде больше не может
ладно, буду дальше копать...
P.S. Блин, насколько же удобнее ява...

yolki

проблемы могут быть в региональных настройках.
попробуй в эдите ввести не 2.5 а 2,5
т.е. мудрить надо вокруг точки и запятой.

Dasar

Так зачем тебе C++? пиши на C#-е

puare

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

Dasar

> .е. мудрить надо вокруг точки и запятой
в этом случае - был бы exception
проблема скорее всего в том, что там действительно 0.
т.е. ошибка в том, что текст берется или не оттуда, или не в то время.

puare

Все просто, у меня есть некий достаточно большой класс, который написан на цпп. Мне нужно к нему сделать оболочку, которая будет реализовывать гуй и взаимоействие с экселем. Как это сделать на плюсах я еще (хоть отдаленно достаточно) представляю, а вот как на шарпе - совершенно нет. Более того, сгенерив с помощью вижуал студио проект минимальный на шарпе с дотнетом, я не очень вьехал в его синтаксис, а разбираться времени не очень есть.

puare

Есть форма. На ней есть три текстбокса, радио и кнопка. По событию нажатия кнопки отрабатывает код. который, помимо всего прочего, и интересуется содержимым текстбокса с даблом. Другие текстбоксы, в которых стоят инты, работают отлично. Демоны шалят?

Dasar

в отладчике-то хоть что показывает.

puare

посмотрел в отладчике.
проблема, оказывается, в выводе. Т.е. инициализируется все правильно, а вот вывод - кривой. Что может быть в этом случае? Даблы в той же строке с тем же форматом (%.3f) выводятся "на ура"

Dasar

нафиг ты через printf выводишь? выводи через .net, код будет надежнее

puare

эммм... с этого места поподробнее. если можно. Я пользую _stprintf для вывода в строку юникодных символов, которую потом скармливаю методу создания графика в экселе в качестве подписи к этому самому графику. Как и где здесь можно организовать вывод средствами дотнета?
Оставить комментарий
Имя или ник:
Комментарий: