擅长:python、mysql、java
<p>正如@Anonymous所写:</p>
<blockquote>
<p>You can round to the nearest multiple of a like this:</p>
<pre><code>def round_nearest(x, a):
return round(x / a) * a
</code></pre>
</blockquote>
<p>工作得几乎完美,但是<code>round_nearest(1.39, 0.05)</code>给出的结果是1.4000000000000001。
为了避免这种情况,我建议您:</p>
<pre><code>import math
def round_nearest(x, a):
return round(round(x / a) * a, -int(math.floor(math.log10(a))))
</code></pre>
<p>精确到<code>a</code>,然后精确到有效位数,这就是你的精确值<code>a</code></p>