1. 使用格式化(不推薦) 1 2 3 >>> a = "%.30f" % (1/3) >>> a '0.333333333333333314829616256247' 可以顯示,但是不准確,后面的數字往往沒有意義。 2. 高精度使用decimal模塊,配合getcontext 1 2 3 4 5 6 7 8 9 10 11 12 >>> from decimal import * >>> print(getcontext()) Context(prec=28, rounding=ROUND_HALF_EVEN, Emin=-999999, Emax=999999, capitals=1, clamp=0, flags=[], traps=[InvalidOperation, DivisionByZero, Overflow]) >>> getcontext().prec = 50 >>> b = Decimal(1)/Decimal(3) >>> b Decimal('0.33333333333333333333333333333333333333333333333333') >>> c = Decimal(1)/Decimal(17) >>> c Decimal('0.058823529411764705882352941176470588235294117647059') >>> float(c) 0.058823529411764705 默認的context的精度是28位,可以設置為50位甚至更高,都可以。這樣在分析復雜的浮點數的時候,可以有更高的自己可以控制的精度。其實可以留意下context里面的這rounding=ROUND_HALF_EVEN 參數。ROUND_HALF_EVEN, 當half的時候,靠近even.