gpd 发表于 2022-7-6 10:40:59

autolisp中的实数

我有一个lisp例程,它从excel表格中读取点坐标,并在这些点上插入块。所有点都有3位小数。例如
 
614332.785, 2619494.544
 
例行工作很好。
 
现在,在另一个例程中,我得到了块的基点,并将其与excel文件中的坐标进行比较。它们不相同,但略有不同。例如,在上述点插入的块的基点将由lisp报告为(614333.0261949E+006)。造成这种差异的原因是什么。我怎样才能得到相同的精确值。
 
类似地,假设它们是存储在excel单元格中的值6123.494,当我提取该值(使用vlisp)时,系统显示变量的值为6123.494,但当我调用(valx variant value)时,返回值变为6123。为什么会这样。494部分省略。请引导。
 
谢谢

Tharwat 发表于 2022-7-6 10:56:17

只需按以下方式更改函数中的最后一个数字。
(rtos YourNumber 2 3 )
如果发现任何其他错误,最好也粘贴代码,让我们为您检查它们。。。
当做
 
塔瓦特

gpd 发表于 2022-7-6 11:22:45

谢谢Tharwat,
 
但我希望结束结果是实数,而不是字符串。rtos可能会将结果转换为字符串。
 
有什么建议吗?

Tharwat 发表于 2022-7-6 11:34:55

它来了;
(setq a 15.12345)
15.1235

(setq b (rtos a 2 3))
"15.123"

(setq c (atof b))
15.123

 
当做
 
塔瓦特

alanjt 发表于 2022-7-6 11:41:53

阅读开发者指南中的EQUAL。
页: [1]
查看完整版本: autolisp中的实数