7

意见 #18,在20 个有争议的编程意见中

让我思考。所以我尝试将 pi 的值打印到小数点后 5 位。

没关系,因为我认为我绝对可以在 Python 中快速完成。在谷歌上几秒钟我就知道了Python 的 Decimal 模块。我完成了。休息是任何人都可以提出来总结系列以获得 Pi 值的基本逻辑。

>>>from decimal import *
>>>getcontext().prec = 6
>>>Decimal(22)/Decimal(7)

我写了上面的快速脚本只是为了检查我会得到什么。

但事情是这样的,getcontext().prec = 6给了我一个四舍五入的价值!

>>>3.14286

确切地说。

我想知道如何确保小数点后第 N 位不四舍五入?我的意思是在这里我希望答案是3.14285

4

1 回答 1

11

就像您使用 Decimal 上下文指定精度一样,您也可以指定舍入规则。

from decimal import *

getcontext().prec = 6 
getcontext().rounding = ROUND_FLOOR

print Decimal(22)/Decimal(7)

结果将是

3.14285

http://docs.python.org/release/3.1.5/library/decimal.html#decimal.Context

于 2012-09-12T05:58:00.860 回答