你如何在 Racket 中得到小数的余数?
How do you get the remainder of a decimal in Racket?
我将 Racket 视为对 lisp 的友好介绍,但我遗漏了一些东西。我需要简化角度,所以我需要做的就是得到 n mod 360。问题是 n 可能是小数。我查看了文档,但 "remainder" and "modulo" 都需要整数。
flonum module 看起来很有前途,但似乎没有 % 功能。
我最终将它重新实现为这个表达式,效果很好:
(define (float-modulo n m)
(- n (* (floor (/ n m)) m)))
但如果已经支持,我宁愿不这样做。
Racket 通过 rnrs/base-6
库提供 R6RS 除法运算符,因此您可以:
(require rnrs/base-6)
(mod 370.25 360)
> 10.25
我将 Racket 视为对 lisp 的友好介绍,但我遗漏了一些东西。我需要简化角度,所以我需要做的就是得到 n mod 360。问题是 n 可能是小数。我查看了文档,但 "remainder" and "modulo" 都需要整数。
flonum module 看起来很有前途,但似乎没有 % 功能。
我最终将它重新实现为这个表达式,效果很好:
(define (float-modulo n m)
(- n (* (floor (/ n m)) m)))
但如果已经支持,我宁愿不这样做。
Racket 通过 rnrs/base-6
库提供 R6RS 除法运算符,因此您可以:
(require rnrs/base-6)
(mod 370.25 360)
> 10.25