<p>很难理解你在寻找什么样的精度,但我想你也可以看看<a href="http://docs.python.org/release/2.7/library/decimal.html#module-decimal" rel="nofollow">decimal module.</a>-</p>
<blockquote>
<p>It offers several advantages over the
float datatype:</p>
<p>Decimal “is based on a floating-point
model which was designed with people
in mind, and necessarily has a
paramount guiding principle –
computers must provide an arithmetic
that works in the same way as the
arithmetic that people learn at
school.” – excerpt from the decimal
arithmetic specification.</p>
<p>Decimal numbers can be represented
exactly. In contrast, numbers like 1.1
and 2.2 do not have an exact
representations in binary floating
point. End users typically would not
expect 1.1 + 2.2 to display as
3.3000000000000003 as it does with binary floating point.</p>
<p>The exactness carries over into
arithmetic. In decimal floating point,
0.1 + 0.1 + 0.1 - 0.3 is exactly equal to zero. In binary floating point, the
result is 5.5511151231257827e-017.
While near to zero, the differences
prevent reliable equality testing and
differences can accumulate. For this
reason, decimal is preferred in
accounting applications which have
strict equality invariants.</p>
<p>The decimal module incorporates a
notion of significant places so that
1.30 + 1.20 is 2.50. The trailing zero is kept to indicate significance. This
is the customary presentation for
monetary applications. For
multiplication, the “schoolbook”
approach uses all the figures in the
multiplicands. For instance, 1.3 * 1.2
gives 1.56 while 1.30 * 1.20 gives
1.5600.</p>
</blockquote>