明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1113|回复: 3

[讨论] 关于用表达式定义变量的问题

[复制链接]
发表于 2015-1-16 21:57:41 | 显示全部楼层 |阅读模式
5明经币
一般可用(setq valName 1.123456789)的形式达定义变量的值。现在我想用表达式来定义变量,即前面的valName是可变的(可以由程序使用者自行命名),当然这个变量的值也可以自行定义,然后做成一个子程序。
(eval (read (strcat "(setq " varName " " (rtos varValue 2 5) " )")))这句基本可以达到我的要求,但这一语句中对于变量值varValue需要转换为字符串,这就使得在计算中可能产生不可忽略的误差。各位老大可否帮我优化一下?谢谢!!!


_$ (setq varName "a")
"a"

_$ (setq varValue 1.123456789)
1.12346

_$ (eval (read (strcat "(setq " varName " " (rtos varValue 2 5) " )")))
1.12346

_$ a
1.12346

_$ (+ a 1)
2.12346



"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2015-1-16 22:29:42 来自手机 | 显示全部楼层
(vl-princ-to-string varValue)
回复

使用道具 举报

 楼主| 发表于 2015-1-16 22:37:09 | 显示全部楼层
aihuyujian 发表于 2015-1-16 22:29
(vl-princ-to-string varValue)

谢谢,但这个貌似也是先将数字做成字符串,但由该字符串还原成数字时就会丢失精度。有没有其它办法能保证精度吗?
回复

使用道具 举报

发表于 2015-2-19 15:22:01 | 显示全部楼层
用 set 函数
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-23 02:59 , Processed in 0.187505 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表