|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Ошибка в Mathcad 14 при сравнении величин
Регистрация: 16.04.2010
Сообщений: 4
|
||
Просмотров: 4474
|
|
||||
Регистрация: 01.02.2008
Сообщений: 356
|
Беда, кажется, в том что машинные вычисления выполняются всегда неточно. При переводе единиц MathCad выполняет какие-то операции, в результате чего накапливает ошибку порядка 10^-15.
Достаточно добавтить строчку b1:=b1+10^-15 mm после красных полей и все ОК. Вас интересует именно данное точное сравнение круглых чисел? Для машины круглых чисел нет. В этом и проблема. b1 у нее вышло немного меньше, чем выражение слева - в этом и проблема. |
|||
![]() |
|
||||
Регистрация: 16.04.2010
Сообщений: 4
|
Constantin Shashkin, а как же тогда при разных значениях переменных, получается то "ок", то "не ок"? Да и потом, у меня только одна размерность - это мм, значит никакого перевода из м в мм нет. Мне 10^-15mm не помогло, помогло 10^-14mm, у вас 14-й маткад и у меня, как же объяснить и эту разницу
![]() P.S. Constantin Shashkin, вы оказались правы. Решил проблему, убрав галочку напротив Use exact equality for comparisons and truncation в разделе Calculation. Последний раз редактировалось bubble gum, 07.07.2010 в 10:52. |
|||
![]() |
|
||||
Регистрация: 01.02.2008
Сообщений: 356
|
При сравнениях всегда нужно помнить, что машина даже 2+2 не может выполнить совсем без ошибки. Поэтому в программировании равенство 2+2=4 не всегда даст положительный результат. Правильнее писать Abs(2+2-4)<Tol, где Tol - заданная точность.
|
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Ошибка при создании слоя в AutoCad 2009 | Streko3a | AutoCAD | 23 | 22.08.2011 09:12 |
*Bug. Ошибка выполнения getstring при включенном динамическом вводе | Кулик Алексей aka kpblc | Баги и пожелания в Autodesk | 0 | 02.11.2009 23:37 |
Мониторы LCD CRT | Разное | 94 | 17.06.2008 10:51 | |
БРЕД СИВОЙ КОБЫЛЫ | Kryaker | Разное | 1876 | 29.12.2006 23:41 |