Форум программистов, компьютерный форум, киберфорум
C++ Builder: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
 Аватар для nnnikotinnn995
7 / 7 / 4
Регистрация: 07.07.2011
Сообщений: 583

Фильтрация одинарных чисел с плавающей точкой

25.02.2014, 08:58. Показов 1146. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Я фильтрую таблицу по числовому полю "вес" с помощью стандартного метода
C++
1
2
3
4
ADOTable1->Filtered=false;
Edit1->Text= "вес >= "+ Edit1->Text + " AND вес <= "+ Edit2->Text;
ADOTable1->Filter =Edit1->Text;
ADOTable1->Filtered=true;
При введение в Edit1 и Edit2 целых числах все работает правильно, а при введение "одинарных с плавающей точкой" (которые установлены в программе Microsoft Office Access 2007) не остается не одной записи. Подскажите пожалуйста в чем тут причина и как можно фильтровать по не целым числам?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.02.2014, 08:58
Ответы с готовыми решениями:

Вычисление чисел с плавающей точкой
делаю калькулятор и столкнулся с проблемой вычисления чисел с плавающей точкой...как можно реализовать подскажите

сумму чисел с плавающей точкой
у меня проблема возникла когда я считаю сумму чисел то челые числа считает нормально а с плавающей точкой как то не так например когда я...

Сравнение чисел с плавающей точкой
Добрый день. Сегодня заметил странную проблему в C++ Builder (в 6-м и XE). Связана она с сравнением чисел с плавающей точкой. Есть...

7
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
25.02.2014, 10:07
Может здесь нужно использовать
C++
1
StrToFloat()
0
 Аватар для nnnikotinnn995
7 / 7 / 4
Регистрация: 07.07.2011
Сообщений: 583
25.02.2014, 12:51  [ТС]
Цитата Сообщение от Sasha Посмотреть сообщение
Может здесь нужно использовать
Код C++
1
StrToFloat()
А как это поможет? Можно конечно преобразовать все в float
C++ (Qt)
1
2
3
float ftn;
 ftn=StrToFloat(Edit1->Text);
 ADOTable1->Filter ="вес >= ftn";
Но тогда при выполнение возникнет ошибка "Аргументы имеют неверный тип...", да оно и понятно, так как метод ADOTable1->Filter имеет тип AnsiString а не float. Как тут StrToFloat может помочь?

Добавлено через 8 минут
//---------------------
а если сделать вместо ADOTable1->Filter ="вес >= ftn"; так
C++ (Qt)
1
ADOTable1->Filter ="вес >= " + AnsiString(ftn);
то все вернется туда, откуда началось
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33402 / 21512 / 8236
Регистрация: 22.10.2011
Сообщений: 36,912
Записей в блоге: 12
25.02.2014, 13:49
nnnikotinnn995, в каком виде в Edit вводятся данные? Уверен, что, скажем, разделитель целой и дробной части совпадает с тем, что хочет видеть БД?
0
 Аватар для nnnikotinnn995
7 / 7 / 4
Регистрация: 07.07.2011
Сообщений: 583
25.02.2014, 15:53  [ТС]
Цитата Сообщение от UI Посмотреть сообщение
nnnikotinnn995, в каком виде в Edit вводятся данные? Уверен, что, скажем, разделитель целой и дробной части совпадает с тем, что хочет видеть БД?
Нет. А что хочет видеть БД, в каком виде этот разделитель понятен для БД, можно ли сделать такую фильтрацию с помощью ADOTable1->Filter или нужен другой метод?
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33402 / 21512 / 8236
Регистрация: 22.10.2011
Сообщений: 36,912
Записей в блоге: 12
25.02.2014, 16:17
Вся проблема - в том, что твой код прекрасно работает, смотри:


Разделитель - точка...
1
 Аватар для nnnikotinnn995
7 / 7 / 4
Регистрация: 07.07.2011
Сообщений: 583
25.02.2014, 17:30  [ТС]
Странно, при добавление записи приходится писать запятую, а при фильтрации точку, пользователю это не понравится. А можно это как то исправить?
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33402 / 21512 / 8236
Регистрация: 22.10.2011
Сообщений: 36,912
Записей в блоге: 12
25.02.2014, 19:18
Можно вот так попробовать:
C++
1
2
3
4
5
// ...
    ADOTable1->Filtered = false;
    ADOTable1->Filter = String().sprintf(L"вес >= %f AND вес <= %f",
        Edit1->Text.ToDouble(), Edit2->Text.ToDouble());
    ADOTable1->Filtered = true;
, насколько я помню, при этом разделитель в вещественных числах будет не запятой, а всегда точкой... Или использовать замену DecimalSeparator-а в строке на точку, в качестве крайней меры...
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.02.2014, 19:18
Помогаю со студенческими работами здесь

Настройка вывода чисел с плавающей точкой
Испльзую функцию fprintf() для вывода в текстовый файл. Как сделать чтобы эта функция для разделения целой и дробной части использовала...

Преобразование чисел с плавающей точкой в числа с фиксированной точкой
Здравствуйте, подскажите пожалуйста как заменить вещественные числа с плавающей точкой, числами округленными до десятых, записанными в...

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

Умножения чисел с плавающей точкой
Доброго времени суток,нужна ваша помощь в умножение чисел с плавающей точкой. Суть программы:Умножение чисел в двоичном коде.Первое число...

Представление чисел с плавающей точкой
Никак не пойму почему в коде: double helper; bool cond; int dim_2; int dim_1; helper=0.0; ...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru