Как исправить количество знаков после запятой LISP&
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Как исправить количество знаков после запятой LISP&

Как исправить количество знаков после запятой LISP&

Ответ
Поиск в этой теме
Непрочитано 22.07.2014, 11:30 #1
Как исправить количество знаков после запятой LISP&
Arharovez
 
Регистрация: 22.07.2014
Сообщений: 3

Вопрос от совсем мало разбирающегося в этом деле архитектора - Знаки после запятой : простой калькулятор - http://cadtips.cadalyst.com/general-...lected-numbers что нужно изменить чтобы получить три, четыре знака после запятой??
Код:
[Выделить все]
; TIP1068.LSP: WWT.LSP   Total Selected Numbers   (c)1995, K. Socrates

(defun C:WWT (/ S1 LG INDEX COUNT C B A)
   (setq S1 (ssget)
      LG (sslength S1)
      INDEX 0
      COUNT 0
      C 0
   )

   (while (/= INDEX LG)
      (setq X (ssname S1 INDEX)
         A (entget X)
         D (cdr (assoc 0 A))
      )
      (if (= D "TEXT")
         (progn
            (setq B (atof (cdr (assoc 1 A)))
               C (+ C B)
               COUNT (1+ COUNT)
            )
         )
      )
      (setq INDEX (1+ INDEX))
   )
   (princ (strcat "\nTotal Weight of " (itoa count) " Parts : " (rtos C 2 2)))
   (princ)
) ; end wwt.lsp

Последний раз редактировалось Arharovez, 22.07.2014 в 11:43. Причина: Пункт 4.3
Просмотров: 4142
 
Непрочитано 22.07.2014, 12:31
#2
Alan

CAD
 
Регистрация: 28.08.2003
Киев
Сообщений: 1,834
<phrase 1=


Цитата:
Сообщение от Arharovez Посмотреть сообщение
то нужно изменить чтобы получить три, четыре знака после запятой??
(rtos C 2 3) или
(rtos C 2 4)
__________________
По теории майский жук летать не может.
Но он этого не знает. И летает...
Alan вне форума  
 
Автор темы   Непрочитано 22.07.2014, 13:25 Спасибо!
#3
Arharovez


 
Регистрация: 22.07.2014
Сообщений: 3


Большое спасибо!!! Есть еще дополнительный вопрос : можно ли сделать так чтобы можно было считать позиции вида "0,999"?? Поскольку сейчас код считает только значения с разделителем точкой - "0.999"
Можно конечно взять и заменить все, но потом нужно все равно менять обратно, и т.д.
Arharovez вне форума  
 
Непрочитано 22.07.2014, 13:43
#4
Alan

CAD
 
Регистрация: 28.08.2003
Киев
Сообщений: 1,834
<phrase 1=


Цитата:
Сообщение от Arharovez Посмотреть сообщение
можно ли сделать так чтобы можно было считать позиции вида "0,999"??
Можно
Замени строку
Код:
[Выделить все]
 (setq B (atof (cdr (assoc 1 A)))
на строку
Код:
[Выделить все]
 (setq B (atof (vl-string-subst "." "," (cdr (assoc 1 A))))
Но кажется здесь на форуме были прекрасные сумматоры... в Поиск
__________________
По теории майский жук летать не может.
Но он этого не знает. И летает...
Alan вне форума  
 
Автор темы   Непрочитано 22.07.2014, 13:55 ЕЩЕ РАЗ БОЛЬШОЕ СПАСИБО!
#5
Arharovez


 
Регистрация: 22.07.2014
Сообщений: 3


ЕЩЕ РАЗ БОЛЬШОЕ СПАСИБО!
Он слишком простой, удобный и незатейливый, тем и привлекает.

Последний раз редактировалось Arharovez, 22.07.2014 в 14:12.
Arharovez вне форума  
 
Непрочитано 22.07.2014, 20:50
#6
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от Alan Посмотреть сообщение
(setq B (atof (vl-string-subst "." "," (cdr (assoc 1 A))))
И чтобы в один прекрасный момент не получить сообщение no function definition добавить (vl-load-com)
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Как исправить количество знаков после запятой LISP&



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разработка ПОС, искусство проектирования Tyhig Технология и организация строительства 117 25.11.2021 17:38
После применения offset не удаляется (не редактируется) исходный объект Nata1 AutoCAD 7 07.04.2015 09:08
До какого знака после запятой округлять полученные значения? sergei78 Конструкции зданий и сооружений 31 27.12.2008 22:02
ACAD2006. Знаки после запятой в окне Viewport Scale Control =mik= AutoCAD 2 16.06.2005 10:57