![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 31.03.2009
Сообщений: 9
|
![]()
Словил "клин" в простой ситуации, в поиске не нашел подобного.
Помогите советом начинающему, плз! Имеем в редакторе VBA(Excel) что-то типа: Sub R() Dim x5 As Single, x14 As Single, x15 As Single, x23 As Single x15 = 17.48 x14 = 17.4 x23 = 17.4 x5 = 34.88 If x5 <> Application.WorksheetFunction.Max(x 15, x23) + x14 Then MsgBox ("Ошибка") End If End Sub условие не желает выполняться, хотя вроде все очевидно. Есть предположение, что с форматом чисел надо колдовать, но как? |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 24.06.2008
Сообщений: 516
|
![]()
x5=34.88
Max(x15, x23) + x14 =34,8799991607666 а это разные вещи
Можно сделать все! Было бы время, да деньги...
|
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 30.01.2008
Сообщений: 314
|
![]()
как нас учили - при операциях с вещественными числами не может быть сравнений типа = или <> , может быть только определение точности результата, т.е > dx или <dx, где dx - точность (например, 0,0001 для вашего случая)
|
![]() |
![]() |
![]() |
#4 |
Регистрация: 31.03.2009
Сообщений: 9
|
![]()
Числовые значения переменных привел для минимизации кода. В реальности функция работает со ссылками на значения в ячейках. Причем более "тяжелые" , на мой взгяд, для понимания VBA экселевские функции (например VLookup) отрабатывают вполне корректно. "Странность" поведения замечена именно на МАХ! Неужели нет более изящного решения, или это неисправимая ошибка редактора?
P.S. Конечно, можно применить Round, но хотелось бы понять, почему VBA в операциях сравнения "корёжит" сами значения, он что, конвертирует в понятный для себя вид дроби туда-сюда? Последний раз редактировалось Дятел; 31.03.2009 в 13:47. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Задача с помощью функции switch по C++ | Many man | Помощь студентам | 9 | 02.09.2017 10:35 |
Вычисление функции с помощью ряда Тейлора | Wast | Общие вопросы C/C++ | 6 | 25.12.2011 19:42 |
Задачка Excel с помощью функции ЕСЛИ,помогите пожалуйста. | Tsss | Microsoft Office Excel | 6 | 19.04.2009 15:05 |
Вывести динамический масив с помощью функции | Gavreil | Общие вопросы C/C++ | 2 | 17.12.2008 21:27 |
Рассчитать полином с помощью функции. Паскаль. | Nexx | Помощь студентам | 8 | 04.12.2007 22:19 |