擅长:python、mysql、java
<p>下面是发生的事情:</p>
<p>当单独打印值时,使用的是格式字符串(%f),该字符串以浮点格式(即最多7个有效数字)打印数字。这部分是正确的。在</p>
<p>将值作为元组的一部分打印时,元组本身负责生成自己的字符串表示形式。当它创建值的字符串表示形式时,它不使用%f格式字符串;相反,它只是在对象上调用<code>repr()</code>。这将导致不格式化,只得到精确的数值,精确到小数点后14位。比较:</p>
<pre><code>import math
>>> print "%f" % (0.0 + 4*math.cos(math.radians(270)))
-0.000000
>>> print repr(0.0 + 4*math.cos(math.radians(270)))
-7.3478807948841188e-16
</code></pre>