|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
19.05.2008, 01:15 | #1 |
Форумчанин
Регистрация: 26.11.2006
Сообщений: 584
|
Странное поведение ПОИСКПОЗ
Друзья,
У меня ПОИСКПОЗ почему-то не любит 0,3. В чём дело? |
19.05.2008, 12:43 | #2 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
Вот это суровая задачка.
Сразу скажу - ответ не знаю. Еще скажу, такими вопросами ты подрываешь веру в Эксель! Смотри, я там дополнил твой файл табличкой для экспериментов Закономерность есть, ее надо искать в документации или спрашивать у Майкрософтов. Смотри табличку. Если 0,3 в базе (в желтой строке) заменить на результат формулы =0,1+0,2 - результаты поиска меняются местами. Там, где была найдена позиция 3 - становиться НД, а где были НД - стало 3. Причем, равны ли значения (искомое и из базы) - всегда выдает ИСТИНА (смотри последнюю колонку). Да, если в ПОИСКПОЗ убрать 0 в конце, то она абсолютно логично всегда находит позицию 0,3. Понятно, что видим мы в ячейке одно значение, а эксель хранит нечто другое, т.е. там есть какой-то знак, я не знаю, в 10-14 разряде после запятой, поэтому они и не равны, но как его увидеть, не знаю. Причем то, что они разные, видит ПОИСКПОЗ, а простое сравнение видит, что значения равны.((( Возможно они сравнивают разные типы, Single и Double, например. 100% я сталкивался с таким: при увеличении ширины колонки, иногда там, где стояла красивая цифра, появляется n нулей и единичка за ними, т.е. на самой деле Эксель держал в уме, немного не то, что показывал в ячейке.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
19.05.2008, 13:23 | #3 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
Проблема в функции рабочего листа "ОКРУГЛВВЕРХ". Если использовать просто "ОКРУГЛ", то все будет ОК. При выполнении функции "ОКРУГЛВВЕРХ" с заданным количеством разрядов (не 0), Excel работает с типом Double. Поэтому и возникает ошибка. Избежать ее можно, если всегда задавать количество десятичных знаков - 0. Например, см. вложение.
Чем шире угол зрения, тем он тупее.
|
19.05.2008, 13:35 | #4 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
сори, не приложил свою таблицу
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
19.05.2008, 13:53 | #5 |
Форумчанин
Регистрация: 26.11.2006
Сообщений: 584
|
SAS888
Проблема не только с "ОКРУГЛВВЕРХ" Это видно в примере IgorGO Интересно то, что если вместо 0,26 подставить(>=0,3 или <=0,2) то все будет работать. Последний раз редактировалось ZORRO2005; 19.05.2008 в 13:58. |
19.05.2008, 14:02 | #6 | |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
Функцию "ОКРУГЛВВЕРХ" я привел как пример. Почти все действия с дробными числами дадут подобный результат.
Цитата:
Чем шире угол зрения, тем он тупее.
|
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Че-то странное .... | ~Brilliant~ | Безопасность, Шифрование | 9 | 27.04.2009 13:57 |
Независимое поведение форм | Alter | Общие вопросы Delphi | 2 | 25.07.2008 22:12 |
Непонятное поведение алгоритма | master_root | Общие вопросы Delphi | 3 | 11.06.2008 14:32 |
Странное закрытие | joker | Win Api | 18 | 29.03.2008 07:45 |