powered by simpleCommunicator - 2.0.35     © 2025 Programmizd 02
Форумы / SQLite [игнор отключен] [закрыт для гостей] / как работает where по дробным числам?
5 сообщений из 5, страница 1 из 1
как работает where по дробным числам?
    #39533997
Chego
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
запрос
Код: sql
1.
select koofZP from bomj  where koofZP=0.5


выдает 0 записей

тоже самое без where
Код: sql
1.
select koofZP from bomj 


выдает
0.9
0.5
0.75
0.05

поле koofZP тип REAL

почему не происходит поиск по дробному числу ?
...
Рейтинг: 0 / 0
как работает where по дробным числам?
    #39534187
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
select ... from ... where abs(значение - поле) < 0.1

?
...
Рейтинг: 0 / 0
как работает where по дробным числам?
    #39534249
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Chegoпочему не происходит поиск по дробному числу ?Потому что оно дробное.
Читай учебники по методам хранения чисел с плавающей запятой. Например тут: https://neerc.ifmo.ru/wiki/index.php?title=Представление_вещественных_чисел

А если кратко: десятичные дроби при переводе в двоичную систему теряют точность. То что ты видишь на экране это обычно уже округленное значение.
Для операций равенства с дробными числами (если нужна точность до двух знаков после запятой) делают одну из двух вещей:
константа_умноженная_на_100 = отбросить_дробную_часть(число * 100)

abs(константа - число) < 0.00001
...
Рейтинг: 0 / 0
как работает where по дробным числам?
    #39534383
Chego
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пол ночи убил на эту глючную сушку.
Разобрался. Проблема в классе ContentValues андроид студии
в коде 2 раза вставляю запись разными способами
обе отображаются при
Код: sql
1.
select * from testtable


НО ТОЛЬКО ОДНА ловится при
Код: sql
1.
where koof1=0.05


угадайте какая.

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
public void onb1Click(View v){
        SQLiteDatabase db = dbHelper.getWritableDatabase();
        db.execSQL("delete from testtable");
        float TX = 0.05f;

        ContentValues cv = new ContentValues();
        cv.put("koof1",        TX      );

        db.insert("testtable", null, cv);
        db.execSQL("insert into testtable (koof1) values ("+TX+")");

        db.close();
    }


правда не понятно как rowid получить теперь:(
...
Рейтинг: 0 / 0
как работает where по дробным числам?
    #39534393
Chego
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owl, почитал вашу ссылку. никогда бы не подумал что чиновники и сюда добрались. Они таки сделали математику приблизительной наукой:(
Теперь точно приснится мне фиксированая точка.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / SQLite [игнор отключен] [закрыт для гостей] / как работает where по дробным числам?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]