明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 406|回复: 8

[讨论] 关于求余函数REM的小问题

[复制链接]
发表于 2023-11-25 23:35 | 显示全部楼层 |阅读模式
在编程中发现,如(rem 2.5 0.1)得到的结果居然是0.1,2.5不是0.1的整数倍么,不该是整除么,结果应该是0啊,为什么会是0.1?这是BUG么?还是本来就是定义为这样,请教一下大家。

"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2023-12-6 14:56 | 显示全部楼层
(defun MREM(LST)
  (IF(VL-EVERY'NUMBERP LST)
    (APPLY(FUNCTION REM)(MAPCAR'(LAMBDA(X)(/ X(LAST LST)1.))LST))))
(MREM '(2.5 0.1))
回复 支持 1 反对 0

使用道具 举报

发表于 2023-11-26 15:12 | 显示全部楼层
整数运算才有意义,你带小数的运算,结果可能不可靠,不一定出个什么幺蛾子
回复 支持 1 反对 0

使用道具 举报

发表于 2023-11-26 08:05 | 显示全部楼层
本帖最后由 liuhe 于 2023-11-26 08:06 编辑

余数,数学用语。在整数的除法中,只有能整除与不能整除两种情况。当不能整除时,就产生余数,取余数运算 a mod b = c(b不为0)表示整数a除以整数b所得余数为c。例如:7÷3 = 2…1,更专业的符号也可以写作 7÷3=2 又 1/3,或者 7 mod 3=1。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2023-11-26 08:49 | 显示全部楼层
本帖最后由 mahuan1279 于 2023-11-26 08:50 编辑

_$ (rem 2.5 0.1)
0.1
_$  (rem 0.1 0.1)
0.0
_$ (rem (rem 2.5 0.1) 0.1)
0.1


_$ (rem 2.5 0.1 0.1)
0.1

发表于 2023-11-28 15:48 | 显示全部楼层
(/ (rem (* 2.5 10)(* 0.1 10))10)  
发表于 2023-11-29 14:24 | 显示全部楼层
QF770 发表于 2023-11-28 15:48
(/ (rem (* 2.5 10)(* 0.1 10))10)

是不是先要判断除数是几位小数?
发表于 2023-11-29 16:19 来自手机 | 显示全部楼层
mahuan1279 发表于 2023-11-29 14:24
是不是先要判断除数是几位小数?

除数被除数是非整数,不符合数学规则,这种结果有何意义呢,如何使用呢?
 楼主| 发表于 2023-12-5 17:06 | 显示全部楼层
QF770 发表于 2023-11-28 15:48
(/ (rem (* 2.5 10)(* 0.1 10))10)

只能这样了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-13 14:14 , Processed in 0.146750 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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