Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Подмена символа для диалога, заменить запятую на точку 
:(
    Опции темы
Proletariy
Дата 1.12.2008, 19:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 19.2.2008

Репутация: нет
Всего: нет



Следующая проблема.
Есть диалоговое окно. В окне есть некоторое колличество текстовых полей ввода CEdit. Кождому полю присвоена переменная типа float. 

Недостаток в том, что когда прописывается целая и дробная часть через запятую при выполнении оператора UpdateDate машина отбрасывает все что после запятой и число на выполнение идет как целое без учета дробной части. С точкой такой проблемы  не возникает.

Можно ли в целом для диалогового окна запустить замену "на лету" знака запятой на точку. onChar - ????? У меня не получилось.  smile 
PM MAIL   Вверх
nk19
Дата 1.12.2008, 19:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 21.1.2008

Репутация: нет
Всего: нет



C MFC не работал, но мне кажется, что не надо такие трюки делать.
В панели управления -> Язык и региональные настройки разделитель целой и дробной части сейчас какой стоит?
Если сделаешь автоматическую замену, то при других настройках разделителя ИМХО программа не будет работать корректно.
PM MAIL   Вверх
aram90
Дата 1.12.2008, 20:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Bug hunter



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 1.12.2008
Где: Yerevan, Armenia

Репутация: нет
Всего: 3



Надо поменять тип с float на CString, потом найти в ручную запятую и заменить на точку.
Потом вызываем функцию atof (библиотека stdlib.h), чтобы конвертировать строку в число.
Это выглядит так:

CString str="55.68";
float x=atof(str.GetBuffer(1));

PM MAIL WWW ICQ   Вверх
Proletariy
Дата 2.12.2008, 09:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 19.2.2008

Репутация: нет
Всего: нет



Спасибо за ответы. Дело в том, что приложение уже написано и менять тип float на CString затруднительно 50-55 полей ввода 7 диалогов. На будущее конечно буду создавать свой класс CMyEdit который будет считывать строковую переменную и с помощью atof переводить ее в числовую.
Кстати atof хорошая функция. Переводит строку в число независимо от знака разделителя.

Цитата

Если сделаешь автоматическую замену, то при других настройках разделителя ИМХО программа не будет работать корректно.

Об этом я не думал.  smile 


Видимо придется оставить все как есть. А жаль))
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0582 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.