当我在方案中编译(modulo 10.5 5)时。它会产生错误。 In procedure modulo: Wrong type argument in position 2: 10.5.
如果数字10.5可以被5整除,我如何检查这个和值。
由于
答案 0 :(得分:2)
数学函数modulo
仅在整数上定义。将它应用于浮点数是没有意义的。
编辑:如下面的评论所述,这是一个返回#t
或#f
的谓词,用于确定是否均衡 d 将数字 n 除以无余数:
(define (divides? n d)
(let ((q (floor (/ n d))))
(zero? (- n (* q d)))))
请注意,由于浮点近似,这可能会失败。
答案 1 :(得分:1)
modulo
不适用于小数,因为它只接受整数。如上所述,您可以定义另一个过程以查看两个数字是否可以相互整除。否则,计算机不知道如何接受modulo
的非整数。