菜卷鱼 发表于 2014-2-17 09:47:29

实数与整数互转小技巧

本帖最后由 菜卷鱼 于 2014-2-17 10:05 编辑

给新手看的

int代表整数, real代表实数

整数转实数 (* int 1.0) ,也可以(/ int 1.0) 、(+ int 0.0)

实数转整数 (fix real)   

隽轩2013 发表于 2023-11-7 21:20:29

请教各位大神 在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 有时候可以加点有时候又不加点 请大家指点指点

llsheng_73 发表于 2025-1-3 12:30:00

菜卷鱼 发表于 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

zj20190405 发表于 2023-8-12 22:48:40

菜卷鱼 发表于 2014-2-17 11:53
假如你计算的时候,(/ 1 4) 结果为0,(/ 1 4.0)为0.25,这应该不一样吧?

整数求值,我都会乘1.0先,把它变成实数,这样返回值才对

llsheng_73 发表于 2014-2-17 11:14:20

整数不需要转为实数的,所有需要参数为实数的都不会拒绝整数

菜卷鱼 发表于 2014-2-17 11:53:32

llsheng_73 发表于 2014-2-17 11:14 static/image/common/back.gif
整数不需要转为实数的,所有需要参数为实数的都不会拒绝整数

假如你计算的时候,(/ 1 4) 结果为0,(/ 1 4.0)为0.25,这应该不一样吧?

fyw12345 发表于 2016-5-5 14:12:31

用到了,感谢感谢!!!!!!!!!!!!!!!

masterlong 发表于 2023-8-13 13:09:19

(/ 1 4 1.0)

magicheno 发表于 2025-1-3 00:49:13

感谢大佬分享

gzcsun 发表于 2025-1-3 08:09:14

本帖最后由 gzcsun 于 2025-1-3 08:14 编辑


-------------------------------------------------

crtrccrt 发表于 2025-1-3 08:52:45

(FLOAT 5)==5.0
页: [1] 2
查看完整版本: 实数与整数互转小技巧