【发布时间】:2012-09-12 05:37:40
【问题描述】:
意见 #18,20 controversial programming opinions
让我思考。所以我尝试将 pi 的值打印到小数点后 5 位。
没关系,因为我认为我肯定可以在 Python 中快速完成。在谷歌上几秒钟我就知道了Decimal module of Python 。 我完成了。休息是任何人都可以提出来总结系列以获得 Pi 值的基本逻辑。
>>>from decimal import *
>>>getcontext().prec = 6
>>>Decimal(22)/Decimal(7)
我写了上面的快速脚本只是为了检查我会得到什么。
但事情是这样的,getcontext().prec = 6 给了我一个四舍五入的值!
>>>3.14286
确切地说。
我想知道如何确保小数点后第 N 位不四舍五入?我的意思是,我希望答案是 3.14285
【问题讨论】:
-
十进制没有四舍五入...它只是打印...你可以做
"{0:0.6f}".format(Decimal(22)/Decimal(7))至少据我所知没有测试... -
@JoranBeasley:你完全错了。十进制进行 舍入(或截断,具体取决于您在上下文中指定的行为)。这就是精度值的用途。试试
'{:.50f}'.format(Decimal(22)/Decimal(7)),看看最后所有的零。 -
好的,感谢您的纠正:) ...抱歉我的评论可能造成的任何混乱