Kod*_*ior 53 python operators python-3.x
以下代码中的模数是做什么的?
from math import *
3.14 % 2 * pi
Run Code Online (Sandbox Code Playgroud)
我们如何计算浮点数的模数?
Ble*_*der 65
当你有表达式时:
a % b = c
Run Code Online (Sandbox Code Playgroud)
这实际上意味着存在一个正整数n
,使c
尽可能小,但非负.
a - n*b = c
Run Code Online (Sandbox Code Playgroud)
手动,你可以一遍又一遍地减去2
(或添加2
你的数字是负数),直到最终结果是可能的最小正数:
3.14 % 2
= 3.14 - 1 * 2
= 1.14
Run Code Online (Sandbox Code Playgroud)
此外,3.14 % 2 * pi
被解释为(3.14 % 2) * pi
.我不确定你是否打算写3.14 % (2 * pi)
(在任何一种情况下,算法都是相同的.只需减去/添加,直到数字尽可能小).
Tho*_*mas 24
除了其他答案之外,fmod
文档还有一些有趣的话题:
math.fmod(x, y)
返回
fmod(x, y)
,由平台C库定义.请注意,Python表达式x % y
可能不会返回相同的结果.C标准的目的fmod(x, y)
是精确地(数学上;到无限精度)等于x - n*y
某个整数n,使得结果具有相同的符号,x
并且幅度小于abs(y)
.Pythonx % y
返回带有符号的结果y
,并且可能不能完全计算浮点参数.例如,fmod(-1e-100, 1e100)
是的-1e-100
,但是Python的结果-1e-100 % 1e100
是1e100-1e-100
,它不能完全表示为浮点数,并且是令人惊讶的1e100
.出于这个原因,fmod()
使用浮点数时通常首选函数,而x % y
使用整数时首选Python .
归档时间: |
|
查看次数: |
366466 次 |
最近记录: |