我需要知道分组的剩余部分:
(remainder (/ 3 2) 2)
但是因为(/ 3 2)不是整数会给我一个错误。
模数:合同违规 预期:整数? 给出:1.5 论点位置:第一个
我怎么解决?
答案 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