擅长:python、mysql、java
<p>也可以强制python打印1(以及以下更多数字):</p>
<pre><code>print('{:.16f}'.format(1.305195828773568))
# -> 1.3051958287735681
</code></pre>
<p>来自<a href="https://docs.python.org/2/tutorial/floatingpoint.html" rel="noreferrer">https://docs.python.org/2/tutorial/floatingpoint.html</a>:</p>
<blockquote>
<pre><code>>>> 7205759403792794 * 10**30 // 2**56
100000000000000005551115123125L
</code></pre>
<p>In versions prior to Python 2.7 and Python 3.1, Python rounded this
value to 17 significant digits, giving ‘0.10000000000000001’. In
current versions, Python displays a value based on the shortest
decimal fraction that rounds correctly back to the true binary value,
resulting simply in ‘0.1’.</p>
</blockquote>
<p>“全精度打印”很难做到:什么是全精度?浮点的表示是二进制的;只有2的幂的分数才能精确表示(精确到完全);大多数十进制分数不能以2为基数精确表示。在</p>
<p>但是对于python和c++,内存中的float是相同的;只是字符串表示不同。在</p>