在方案中没有整数的余数

时间:2015-09-08 13:48:46

标签: functional-programming scheme

我需要知道分组的剩余部分:

(remainder (/ 3 2) 2)

但是因为(/ 3 2)不是整数会给我一个错误。

模数:合同违规 预期:整数? 给出:1.5 论点位置:第一个

我怎么解决?

3 个答案:

答案 0 :(得分:4)

Aren你只是在寻找

(remainder 3 2)

答案 1 :(得分:2)

如果你想获得一个浮点数,其中一个操作数需要是一个浮点数,例如: (/ 3.0 2) => 1.5

如果您无法更改分部内的数字,则可以使用exact->inexact

(exact->inexact (/ 3 2)) => 1.5

如果您正在尝试获取剩余部分,您是否考虑过modulo运营商?

Modulo基本上是'遗留'或溢出的数字。

(modulo 3 2)
=> 1
(modulo 3 1)
=> 0

答案 2 :(得分:2)

要确定数字是否均匀,请使用even?

当数字除以2时,即使余数为零,整数也是。

非整数不均匀。

(define (my-even? x)
  (if (integer? x)
      (= (remainder x 2) 0)
      #f)))

内置函数称为even?

> (even? 5)
#f