Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scheme 有可能得到小数的模吗_Scheme_Modulo - Fatal编程技术网

Scheme 有可能得到小数的模吗

Scheme 有可能得到小数的模吗,scheme,modulo,Scheme,Modulo,当我在scheme中编译(模10.5)时。它会产生一个错误过程中模:位置2:10.5的类型参数错误。 如果数字10.5可以被5整除,我如何检查这个值 多亏了数学函数模仅定义在整数上。将其应用于浮点数是没有意义的 编辑:如下面的注释所述,这里有一个返回#t或#f的谓词,用于确定除数d是否将数字n平均除而不带余数: (define (divides? n d) (let ((q (floor (/ n d)))) (zero? (- n (* q d))))) 请注意,这可能由于浮点近

当我在scheme中编译(模10.5)时。它会产生一个错误<代码>过程中模:位置2:10.5的类型参数错误。

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


多亏了

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

编辑:如下面的注释所述,这里有一个返回
#t
#f
的谓词,用于确定除数d是否将数字n平均除而不带余数:

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

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

模不适用于小数,因为它只接受整数。如上所述,您可以定义另一个过程来查看两个数字是否可以被彼此整除。否则,计算机不知道如何接受模的非整数。“数学函数模仅定义在整数上。将其应用于浮点数是没有意义的。”不正确。许多语言都有类似于
fmod
的函数,它对浮点数进行模运算。在某些语言中,如Java、Python、Ruby,
%
运算符直接对浮点数进行运算。@Newacct:请告诉我
(模10.5)
的答案是什么。Scheme函数
对非整数不起作用;有些函数可以处理非整数,比如R6RS中的
flmod
,它将返回0.5。@Newacct:我同意当10.5除以5时,0.5是余数,因为余数是非零的,所以我们可以说5不除以10.5。但它不是数学中定义的模。将“余数”和“模”这两个词混为一谈是没有帮助的。我编辑了我的回答,以提供回答原始海报问题的代码。如果C标准库函数
fmod
与单词“modulo”无关,为什么它被称为什么?