Здравствуйте, подскажите пожалуйста, как избавиться от нулей после запятой в данной ситуации. Заранее спасибо!!!
Solved! Go to Solution.
Solved by Denver-22. Go to Solution.
Solved by semko_dm. Go to Solution.
Solved by semko_dm. Go to Solution.
Добрый день!
Есть несколько стандартных нодов для округления, они все находятся в библиотеке Core - Math.
В случае преобразования числа в текст подойдет либо Math.Floor либо Math.Ceiling.
If my post answers your question, please click the "Accept as Solution" button. This helps everyone find answers more quickly!
Kind regards,
Dmitriy Semko.
Привет, никак. Да и зачем их убирать? Всё равно при передачи в revit число будет отображаться согласно правилам revit, и количество знаков после запятой будет изменяться от нуля (для типа параметра "целое число") до указанного числа знаков округления (для других числовых параметров).
Дальше всё зависит от того, что ты хочешь сделать с этим числом:
1) передать в любой числовой параметр revit (например, чтобы потом можно было использовать этот параметр в формуле в среде revit): передаёшь как есть. В среде revit это число будет отображаться согласно правилам округления revit (вкладка "Управление" → "Единицы проекта").
2) передать в текстовый параметр revit (например, чтобы вывести это значение в марку, и тогда лишние нули после запятой будут мешать): преобразуешь одним нодом число в строку, убираешь другим нодом ненужные нули с конца.
Да пожалуйста.
Справедливости ради и для полноты картины, можно и как писал @tuuletin - отсекать нули после преобразования в строку. Но я обычно ленюсь потому что выходит на один-два нода больше)
Сначала ставлю математическое округление, особенно если работаю с значениями полученными из ревита (у него бывают неточности в доли миллиметра), а затем уже Floor или Ceiling.
Чтобы темы не плодить, продолжу эту - с дополнительным требованием:
Число нужно вбить в "строковый параметр", и число - не целое. Т.е. должно быть "3,700".
Применяю разделение в String.Split. Но не знаю как из него взять отдельно элементы первого "столбца списка" (целая часть от числа) и второго (дробная часть от числа). Что мне записать в обоих случаях в квадратных скобках вместо 0 - str[0]?
Дополнение:
Нашел нод List.GetItemAtIndex. Но как правильно дать ему параметр Index? Если даю 0, то список остается таким же как на входе. Как добраться до 3-го уровня списка?
str[0][0][0] пробовали?
Судя по картинке, str[0] дает вам 1 уровень вложенности, и если нужно 3, то просто обращайтесь по индексу к соответствующему списку 1 уровня, 2 уровня, и затем к элементу списка
Я пока синтаксисом Python не занимался. (Это следующий этап). Поэтому прошу помощи как мне выделить в список элементы с индексом 0 в один список, а с индексом 1 - в другой (см. вложенный скриншот выше). При том, что изначально, как я понял, они находятся на 4-м (или 3-ем) уровне.
str[0][0][0] дал только 1 значение - самый первый элемент.
Вы можете подсказать/написать команду для вычленения нужных мне 2-х списков?
ОТБОЙ!
Решил, что раз я пока синтаксисом Пайтон не владею, мучить людей не буду. @Anonymous, спасибо за отклик.
Реализовал (пока) всё на уровне нодов: Math.Floor-ом выделил целую часть числа и дробную. Обе перевел в строку и там объединил как мне надо.
Когда изучу как работать со списками, может смогу и изящней сделать.
Я так понимаю, вам нужно отбросить у строк лишние знаки после запятой в первую очередь, если да, то можно это сделать как показано на схеме ниже (файл так же прикреплен):
Есил данный пост дал ответ на ваш вопрос, примите его в качестве решения, чтобы другим было проще его найти.
С уважением,
Дмитрий Семко.
PS: обратите внимание, что в нодах List.GetItemAtIndex использованы "уровни".
Дмитрий, очередной раз спасибо! По коду всё понятно!
Это именно то, что я хотел.
Зафиксировать ответ как решение не могу, т.к. автор темы не я. Теперь понимаю, что это полезное решение поиском не будет определяться ((.
Это сможет сделать автор ветки, или один из модераторов, так что ничего страшного )
Can't find what you're looking for? Ask the community or share your knowledge.