python中的浮点数精度问题
1 | >>> 0.1 + 0.2 |
我们不难发现python中浮点数的精度是存在问题的,这其中的原因是什么呢?
首先十进制的有理数表达是怎样的呢:
满足:
$\frac{x}{10^n}$,其中x≠∞, n∈N 的表达,自然而然二进制中有理数就满足$\frac{x}{2^n}$,其中x≠∞, n∈N
而0.1 和 0.2 都不满足
Round(四舍六入五成双)中的风险
1 | >>> round(0.135, 2) |
我们看到0.135做到了, 而0.235却失败了。这也是由’精度’问题导致的。在我们严格要求精度的时候怎么解决呢?
1 | # 导入十进制数据或金融数据 |
以上。
– end –