Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cpython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
cpython
Commits
accaedf9
Commit
accaedf9
authored
May 06, 1999
by
Fred Drake
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Reflect recent patch for float % and divmod() by Tim Peters. Content
updates by Tim Peters, markup by FLD.
parent
adaa6192
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
16 additions
and
5 deletions
+16
-5
Doc/lib/libfuncs.tex
Doc/lib/libfuncs.tex
+6
-2
Doc/ref/ref5.tex
Doc/ref/ref5.tex
+10
-3
No files found.
Doc/lib/libfuncs.tex
View file @
accaedf9
...
...
@@ -178,8 +178,12 @@ class instances are callable if they have a \method{__call__()} method.
operand types, the rules for binary arithmetic operators apply. For
plain and long integers, the result is the same as
\code
{
(
\var
{
a
}
/
\var
{
b
}
,
\var
{
a
}
\%
{}
\var
{
b
}
)
}
.
For floating point numbers the result is the same as
\code
{
(math.floor(
\var
{
a
}
/
\var
{
b
}
),
\var
{
a
}
\%
{}
\var
{
b
}
)
}
.
For floating point numbers the result is
\code
{
(
\var
{
q
}
,
\var
{
a
}
\%
{}
\var
{
b
}
)
}
, where
\var
{
q
}
is usually
\code
{
math.floor(
\var
{
a
}
/
\var
{
b
}
)
}
but may be 1 less than that. In any case
\code
{
\var
{
q
}
*
\var
{
b
}
+
\var
{
a
}
\%
{}
\var
{
b
}}
is very close to
\var
{
a
}
, if
\code
{
\var
{
a
}
\%
{}
\var
{
b
}}
is non-zero it has the same sign as
\var
{
b
}
, and
\code
{
0 <= abs(
\var
{
a
}
\%
{}
\var
{
b
}
) < abs(
\var
{
b
}
)
}
.
\end{funcdesc}
\begin{funcdesc}
{
eval
}{
expression
\optional
{
, globals
\optional
{
, locals
}}}
...
...
Doc/ref/ref5.tex
View file @
accaedf9
...
...
@@ -583,9 +583,16 @@ The integer division and modulo operators are connected by the
following identity:
\code
{
x == (x/y)*y + (x
\%
y)
}
. Integer division and
modulo are also connected with the built-in function
\function
{
divmod()
}
:
\code
{
divmod(x, y) == (x/y, x
\%
y)
}
. These identities don't hold for
floating point and complex numbers; there a similar identity holds where
\code
{
x/y
}
is replaced by
\code
{
floor(x/y)
}
) or
\code
{
floor((x/y).real)
}
, respectively.
floating point and complex numbers; there similar identities hold
approximately where
\code
{
x/y
}
is replaced by
\code
{
floor(x/y)
}
) or
\code
{
floor(x/y) - 1
}
(for floats),
\footnote
{
If x is very close to an exact integer multiple of y, it's
possible for
\code
{
floor(x/y)
}
to be one larger than
\code
{
(x-x
\%
y)/y
}
due to rounding. In such cases, Python returns
the latter result, in order to preserve that
\code
{
divmod(x,y)[0]
* y + x
\%
{}
y
}
be very close to
\code
{
x
}
.
}
or
\code
{
floor((x/y).real)
}
(for
complex).
The
\code
{
+
}
(addition) operator yields the sum of its arguments.
The arguments must either both be numbers or both sequences of the
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment