是否可以获得带小数的模数

时间:2017-09-14 14:14:32

标签: scheme modulo

当我在方案中编译(modulo 10.5 5)时。它会产生错误。 In procedure modulo: Wrong type argument in position 2: 10.5.

如果数字10.5可以被5整除,我如何检查这个和值。

由于

2 个答案:

答案 0 :(得分:2)

数学函数modulo仅在整数上定义。将它应用于浮点数是没有意义的。

编辑:如下面的评论所述,这是一个返回#t#f的谓词,用于确定是否均衡 d 将数字 n 除以无余数:

(define (divides? n d)
  (let ((q (floor (/ n d))))
    (zero? (- n (* q d)))))

请注意,由于浮点近似,这可能会失败。

答案 1 :(得分:1)

modulo不适用于小数,因为它只接受整数。如上所述,您可以定义另一个过程以查看两个数字是否可以相互整除。否则,计算机不知道如何接受modulo的非整数。