我是SAGE的新手,我遇到的问题非常简单。我有以下代码:
delay = float(3.5)
D = delay%1.0
D
但是这会返回值-0.5
而不是预期的0.5
。我做错了什么?
如果我将延迟更改为delay = float(2.5)
,我会得到正确的答案,所以我不知道为什么它不一致(我确定我以某种方式使用了模数错误)。
答案 0 :(得分:2)
我认为this question会为你做好回答。
但是,我不知道你在Sage中使用float
的原因。然后你可以直接使用Python。无论如何,%
运算符在整数之外使用是很棘手的。例如,这里是用于Sage有理数的文档字符串。
Return the remainder of division of self by other, where other is
coerced to an integer
INPUT:
* ``other`` - object that coerces to an integer.
OUTPUT: integer
EXAMPLES:
sage: (-4/17).__mod__(3/1)
1
我认为这被认为是一个功能,而不是一个错误。