Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Преобразоавние str во float, загвоздка в разделителе цел и дроб части 
:(
    Опции темы
Syrex
Дата 27.9.2006, 13:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 262
Регистрация: 9.2.2006
Где: Москва

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



Как установить по умолчанию в программе разделитель целой и дробной части ','???
PM MAIL ICQ   Вверх
Никто
Дата 27.9.2006, 14:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Как это относится к называнию темы.
--------------------
   
PM MAIL   Вверх
Syrex
Дата 27.9.2006, 14:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 262
Регистрация: 9.2.2006
Где: Москва

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



После преобразования sum=StrToFloat(sum_text)
я пытаюсь занести  sum в базу данных парадокса. И иногда вылетает сообщение EConvertError. Так как парадокс воспринимает в виде разделителя только запятую.
А каждый раз менять в настройках винды разделитель с "." на "," геморойно!
PM MAIL ICQ   Вверх
Alexeis
Дата 27.9.2006, 14:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

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



Код

DecimalSeparator = ',';



--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Romikgy
Дата 27.9.2006, 14:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

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



в дельфи так и работает всегда
Код

sx:='32.32';
sx:=StringReplace(sx,'.', DecimalSeparator,[rfReplaceAll]);
sx:=StringReplace(sx,',', DecimalSeparator,[rfReplaceAll]);
fl:=StrToFloat(sx);



--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Syrex
Дата 27.9.2006, 14:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 262
Регистрация: 9.2.2006
Где: Москва

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



Всё равно не получается. Если по умолчанию стоит английский язык - то вводится разделителем точка
PM MAIL ICQ   Вверх
Vyacheslav
Дата 27.9.2006, 15:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2124
Регистрация: 25.3.2002
Где: Москва

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



А почему просто не писать в базу  непосредственно float, если дело в парадоксе


--------------------
С уважением, Вячеслав Ермолаев
PM MAIL WWW ICQ   Вверх
Romikgy
Дата 27.9.2006, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

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



Syrex, ты че шютник 
Цитата(Romikgy @  27.9.2006,  13:56 Найти цитируемый пост)
sx:=StringReplace(sx,'.', DecimalSeparator,[rfReplaceAll]);
sx:=StringReplace(sx,',', DecimalSeparator,[rfReplaceAll]);

после такого в любом случае работать будет , если конечно текстовый флоат правельный


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Vyacheslav
Дата 27.9.2006, 15:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2124
Регистрация: 25.3.2002
Где: Москва

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



Да похоже, что там проблема не правильно локализована
Цитата(Syrex @  27.9.2006,  14:17 Найти цитируемый пост)
После преобразования sum=StrToFloat(sum_text)

То есть перевод строки во  Extended прошло нормально. Разделитель тут не причем
Цитата(Syrex @  27.9.2006,  14:17 Найти цитируемый пост)

я пытаюсь занести  sum в базу данных парадокса. И иногда вылетает сообщение EConvertError. Так как парадокс воспринимает в виде разделителя только запятую.

То есть, когда полю присваивается Extended value вылетает  EConvertError.
Я не специалист по парадоксу, но напрашивается следущее:
какакой тип поля таблицы и может ли вообще Extended быть преобразован кк типу, который требуется для  данного поля?




--------------------
С уважением, Вячеслав Ермолаев
PM MAIL WWW ICQ   Вверх
Syrex
Дата 27.9.2006, 15:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 262
Регистрация: 9.2.2006
Где: Москва

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



Может я эту функцию не там прописываю??
PM MAIL ICQ   Вверх
Alexeis
Дата 27.9.2006, 15:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

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



Цитата(Syrex @  27.9.2006,  15:24 Найти цитируемый пост)
Может я эту функцию не там прописываю?? 

Ошибка в 17 строке.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Syrex
Дата 27.9.2006, 16:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 262
Регистрация: 9.2.2006
Где: Москва

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



Цитата(Vyacheslav @ 27.9.2006,  15:02)
А почему просто не писать в базу  непосредственно float, если дело в парадоксе

Потому, что парадок воспринимает в качестве разделителя только запятую. А прога выдает точку.
PM MAIL ICQ   Вверх
Vyacheslav
Дата 27.9.2006, 16:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2124
Регистрация: 25.3.2002
Где: Москва

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



Цитата(Syrex @ 27.9.2006,  16:38)
Цитата(Vyacheslav @ 27.9.2006,  15:02)
А почему просто не писать в базу  непосредственно float, если дело в парадоксе

Потому, что парадок воспринимает в качестве разделителя только запятую. А прога выдает точку.

Исправляем бардак в голове. 
Парадоксу, как и любой другой базе данных при получении float совершенно фиолетово какой знак используется в качестве разделителя по той просто причине, что во внутреннем представлении числа знак разделителя не присутствует.  
Какой знак, важно лишт при преобразовании  строки во float, но эта операция с Ваших слов проходит без проблем
Цитата(Syrex @ 27.9.2006,  14:17)
 
После преобразования sum=StrToFloat(sum_text)

Тут ключевое слов после. То есть Вы уже получили sum, в котором знак разделителя уже никак не представлен, а посему дальше должно идти банальное присвоение одного числа другому
Код

Table->FieldByName("MyField")->AsFloat = sum;



 






--------------------
С уважением, Вячеслав Ермолаев
PM MAIL WWW ICQ   Вверх
Romikgy
Дата 27.9.2006, 17:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

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



Цитата(Syrex @  27.9.2006,  15:38 Найти цитируемый пост)
только запятую

дык преобразуй точку в запятую


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
ShadoWolf
Дата 4.10.2006, 14:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Зачем зацикливаться на точке и запятой, базы данных парадокс отлично воспринимают запись переменных в формате float

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

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

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

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

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


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

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


 




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


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

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