实数与整数互转小技巧
本帖最后由 菜卷鱼 于 2014-2-17 10:05 编辑给新手看的
int代表整数, real代表实数
整数转实数 (* int 1.0) ,也可以(/ int 1.0) 、(+ int 0.0)
实数转整数 (fix real)
请教各位大神 在CAD中编译.NC程序时需要在整数后面加个点 例如10 编译成 10.
(DEFUN ZS+DIAN (NUM)
(IF (AND (= (TYPE NUM) 'REAL) (/= NUM (FIX NUM)))
(STRCAT (RTOS NUM 2 3))
(STRCAT (RTOS NUM) ".")
)
)
上面的lisp 有时候可以加点有时候又不加点 请大家指点指点 菜卷鱼 发表于 2014-2-17 11:53
假如你计算的时候,(/ 1 4) 结果为0,(/ 1 4.0)为0.25,这应该不一样吧?
加减法后边增加一个0.0,乘除后边增加一个1.0,还是不用管参与运算的到底是整数还是实数,也不需要转换它们,最后都会得到正确的实数结果,反倒是实数转整数的时候需要注意,有可能眼看是4.0的实数,实际上是3.999...,fix的结果它可能成为3,所以一般需要再对它加一个实数(比如0.5)再fix 菜卷鱼 发表于 2014-2-17 11:53
假如你计算的时候,(/ 1 4) 结果为0,(/ 1 4.0)为0.25,这应该不一样吧?
整数求值,我都会乘1.0先,把它变成实数,这样返回值才对 整数不需要转为实数的,所有需要参数为实数的都不会拒绝整数 llsheng_73 发表于 2014-2-17 11:14 static/image/common/back.gif
整数不需要转为实数的,所有需要参数为实数的都不会拒绝整数
假如你计算的时候,(/ 1 4) 结果为0,(/ 1 4.0)为0.25,这应该不一样吧? 用到了,感谢感谢!!!!!!!!!!!!!!! (/ 1 4 1.0)
感谢大佬分享 本帖最后由 gzcsun 于 2025-1-3 08:14 编辑
-------------------------------------------------
(FLOAT 5)==5.0
页:
[1]
2