XPom Posted May 23, 2022 Report Share Posted May 23, 2022 Вопрос в заголовке. Кто-нибудь сможет объяснить? nanoCAD 21.0.5803.3451 сборка 5857 =round(2.005;2) = 2,01 =round(3.005;2) = 3,01 в EXCELL, например, =округл(1,005;2) = 1,01 что за прикол? 2 Quote Link to comment Share on other sites More sharing options...
Artem_R Posted May 23, 2022 Report Share Posted May 23, 2022 а что не так? ) во всех трех случаях правильное округление до второго знака после запятой. Quote Link to comment Share on other sites More sharing options...
XPom Posted May 23, 2022 Author Report Share Posted May 23, 2022 6 минут назад, Artem_R сказал: а что не так? ) во всех трех случаях правильное округление до второго знака после запятой. 1,00 ; 2,01; 3,01 правильное по каким "правилам"? Quote Link to comment Share on other sites More sharing options...
Artem_R Posted May 23, 2022 Report Share Posted May 23, 2022 1 минуту назад, XPom сказал: 1,00 ; 2,01; 3,01 правильное по каким "правилам"? Вот по этим: Цитата Округление к ближайшему целому Округление к ближайшему целому — наиболее часто используемое округление, при котором число округляется до целого, модуль разности с которым у этого числа минимален. В общем случае, когда число в десятичной системе округляют до N-го знака, правило может быть сформулировано следующим образом: если N+1 знак < 5, то N-й знак сохраняют, а N+1 и все последующие обнуляют; если N+1 знак >= 5, то N-й знак увеличивают на единицу, а N+1 и все последующие обнуляют; https://ru.wikipedia.org/wiki/Округление А Вы по каким округляете? добавлено через 5 минут Сорри. Только сейчас понял, что это три правильных примера противопоставленные неправильному в заголовке. Quote Link to comment Share on other sites More sharing options...
Artem_R Posted May 23, 2022 Report Share Posted May 23, 2022 25 минут назад, XPom сказал: Вопрос в заголовке. Похоже действительно ошибка. Причем воспроизводится только для единицы и для второго разряда. Спасибо, разберемся. 2 Quote Link to comment Share on other sites More sharing options...
EdwardSt Posted May 23, 2022 Report Share Posted May 23, 2022 (edited) 1 час назад, Artem_R сказал: Причем воспроизводится только для единицы и для второго разряда. Замысловатая картинка получается. Подготовил примерчик (в аттаче). Протестированы последовательности чисел на предмет округления ("вниз" и пусто, где "верх", - для наглядности). Отмечу, что по правилам математического округления (наиболее распространенный случай) округление 0,5 должно быть вверх. Спойлер Что занятно, лисповская функция (rtos тоже жжет! Протестировал простенький скрипт с округлением последовательности чисел. Спойлер Первые два числа округляются вверх, остальные - вниз И в обратном порядке. Спойлер Первое число округляется вниз, остальные - вверх И вишенка на торте Спойлер Наблюдаем некоторое расхождение с лисповским результатом (опять же, система неуловима). Но так же видим, что в правой таблице ВСЕ значения округлились вверх, а в левой - в разнобой. Отмечу, что значение аргумента формировалось автоматически, как Ai=Ai-1 + 0.01 для таблицы слева и Ai=Ai-1 - 0.01 - для таблицы слева. Единственным объяснением такого обескураживающего результата может быть то, что операции с плавающей точкой тоже выполняются с некоей погрешностью машинной сетки и далее с непредсказуемыми результатами. Вот только пользователя такое объяснение вряд ли удовлетворит. Действительно, косяк присутствует. Причем, как в части необъяснимости примененного метода (когда есть явные функции округления вниз, вверх и как-бы до ближайшего), так и в одинаковости результата для аргумента, полученного разными методами, но одинакового в конечном виде. Особенности округления.dwg Edited May 23, 2022 by EdwardSt 4 Quote Link to comment Share on other sites More sharing options...
NYO Posted May 24, 2022 Report Share Posted May 24, 2022 Передала вопрос разработчику #15076 2 2 Quote Link to comment Share on other sites More sharing options...
XPom Posted June 6, 2022 Author Report Share Posted June 6, 2022 исправлено в Платформа nanoCAD x64 версия 22.0.6013.3747 сборка 6122 1 1 Quote Link to comment Share on other sites More sharing options...
NYO Posted June 7, 2022 Report Share Posted June 7, 2022 16 часов назад, XPom сказал: исправлено в Платформа В чистую платформу исправление не попало, а вот в спдс/мех этой сборки да Quote Link to comment Share on other sites More sharing options...
XPom Posted June 7, 2022 Author Report Share Posted June 7, 2022 39 минут назад, NYO сказал: В чистую платформу исправление не попало, а вот в спдс/мех этой сборки да Странно. Я думал таблицы - это Платформа. А проверял на СПДС, да Quote Link to comment Share on other sites More sharing options...
EdwardSt Posted June 7, 2022 Report Share Posted June 7, 2022 1 час назад, NYO сказал: В чистую платформу исправление не попало, а вот в спдс/мех этой сборки да Странная ситуация... Вроде бы функционал таблиц относится к платформе... Попутно обнаружил, что при починке функции в таблицах "сломали" функцию (rtos Выше приводился скрин В 23.05.2022 в 12:13, EdwardSt сказал: Протестировал простенький скрипт с округлением последовательности чисел. Последовательность 4.235+0.01*N, N=0...39 (Показать контент) Для примера выбраны 2 значения: 4.305 округлилось к "4.30" (неправильно, но показаны значащие нули в конце) 4.405 округлилось к "4.41" (правильно) В обновленном СПДС Спойлер округление 4.305 по-прежнему выполняется неверно, но до кучи еще и не выводятся значащие нули. Необходимо отметить, что у конкурента тоже не все в порядке. Так, в АС14 тоже удаляются значащие нули, но округление происходит верно. А в справке к AC19 наблюдаем, что значащие нули должны отображаться. Спойлер В общем, налицо корявое исправление: исправили для таблиц только в спец-расширениях (СПДС, Механика), забыв исправить это в функции (rtos, и попутно разучив эту функцию корректно форматировать результат округления. 2 Quote Link to comment Share on other sites More sharing options...
NYO Posted June 9, 2022 Report Share Posted June 9, 2022 В 07.06.2022 в 15:50, EdwardSt сказал: Так, в АС14 тоже удаляются значащие нули, но округление происходит верно. Спойлер В 07.06.2022 в 15:50, EdwardSt сказал: но до кучи еще и не выводятся значащие нули нужно поменять значение DIMZIN 2 1 Quote Link to comment Share on other sites More sharing options...
EdwardSt Posted June 9, 2022 Report Share Posted June 9, 2022 44 минуты назад, NYO сказал: В 07.06.2022 в 12:50, EdwardSt сказал: но до кучи еще и не выводятся значащие нули нужно поменять значение DIMZIN Супер! С этим разобрались. Огромное спасибо. Странно только, что в стандартном новом файле "Без имени0.dwg" по умолчанию Спойлер Но это, понятно., - не проблема. Quote Link to comment Share on other sites More sharing options...
doctorraz Posted June 9, 2022 Report Share Posted June 9, 2022 (edited) 8 минут назад, EdwardSt сказал: Странно только, что в стандартном новом файле "Без имени0.dwg" по умолчанию Цитата Начальное значение:0 (британские единицы) или 8 (метрические единицы) добавлено через 3 минут Спойлер млин.. гении "интуитивно понятного" интерфейса Edited June 9, 2022 by doctorraz 1 Quote Link to comment Share on other sites More sharing options...
EdwardSt Posted June 9, 2022 Report Share Posted June 9, 2022 4 минуты назад, doctorraz сказал: Начальное значение:0 (британские единицы) или 8 (метрические единицы) Это про что? Откуда цитата? Quote Link to comment Share on other sites More sharing options...
doctorraz Posted June 9, 2022 Report Share Posted June 9, 2022 Только что, EdwardSt сказал: Откуда цитата? из оригинала списать без ошибок не могут((( 1 Quote Link to comment Share on other sites More sharing options...
EdwardSt Posted June 9, 2022 Report Share Posted June 9, 2022 4 минуты назад, doctorraz сказал: 5 минут назад, EdwardSt сказал: Откуда цитата? из оригинала Сколько нового узнаешь... Причем тут метрическая или британская система? Очевидно же , что это битовая маска. Первые два бита регулируют нули в британской системе, а 3,4 биты - в метрической. Причем, эти биты могут быть установлены независимо друг от друга. Quote Link to comment Share on other sites More sharing options...
doctorraz Posted June 9, 2022 Report Share Posted June 9, 2022 14 минут назад, EdwardSt сказал: Причем тут метрическая или британская система? это не я у автостола можно поинтересоваться 2 Quote Link to comment Share on other sites More sharing options...
NYO Posted November 29, 2022 Report Share Posted November 29, 2022 В 07.06.2022 в 14:14, XPom сказал: В 07.06.2022 в 13:38, NYO сказал: В чистую платформу исправление не попало, а вот в спдс/мех этой сборки да Странно. Я думал таблицы - это Платформа. А проверял на СПДС, да Исправление в платформе будет доступно в новой версии. 2 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.