dragonboy 发表于 2013-3-29 22:57:59

LSP中如何设定计算的结果的精度

比如说,(setq var (/ 1 3))我希望精确到小数点后10位

llsheng_73 发表于 2013-3-30 02:05:11

本帖最后由 llsheng_73 于 2013-3-30 02:07 编辑

(/ 1 3)它只能得整数0
(setq var (atof(rtos(/ 1 3.0)2 10)))
但是这很头痛
因为(setq var (atof(rtos(/ 1 3.0)2 10)))
0.333333
_$ (setq var (rtos(/ 1 3.0)2 10))
"0.3333333333"
_$ (vl-princ-to-string(setq var (atof(rtos(/ 1 3.0)2 10))))
"0.333333"


$ (-(setq var (atof(rtos(/ 1 3.0)2 10)))0.333333)
3.333e-007

xiabin68 发表于 2013-3-30 07:13:18

units单位那看有没有小数点后十位,

USER2128 发表于 2013-3-30 08:14:33

LUPREC变量

panzhongw 发表于 2013-3-30 09:34:07

(/ 1.0 3.0)

ZZXXQQ 发表于 2013-3-30 10:09:55

正常情况下ACAD内部浮点数的精度有效位数是16位,只是数据显示的问题。

dragonboy 发表于 2013-4-19 18:17:14

ZZXXQQ 发表于 2013-3-30 10:09 static/image/common/back.gif
正常情况下ACAD内部浮点数的精度有效位数是16位,只是数据显示的问题。

我实际上是在写一个正则表达式的东西,堆栈使用字串存储,结果过几次就精度丢失了。

sageman 发表于 2013-4-22 12:37:04

试试将变量dimzin临时设置为0,程序结束时恢复为系统原来的设定值。
页: [1]
查看完整版本: LSP中如何设定计算的结果的精度