如何在执行简单操作时保持Python3.x中的数字分数格式?

时间:2016-09-28 06:35:58

标签: python

在代码中,我想在python 3.x中执行不同的简单操作(例如乘法1/6 * 1/6)时保持数字格式。

我希望:

{
    2: 1/36,
    3: 2/36,
    4: 3/36,
    5: 4/36,
    6: 5/36,
    7: 6/36,
    8: 5/36,
    9: 4/36,
    10: 3/36,
    11: 2/36,
    12: 1/36
}

但我明白了:

{
    2: 0.027777777777777776,
    3: 0.05555555555555555,
    4: 0.08333333333333333,
    5: 0.1111111111111111,
    6: 0.1388888888888889,
    7: 0.16666666666666669,
    8: 0.1388888888888889,
    9: 0.1111111111111111,
    10: 0.08333333333333333,
    11: 0.05555555555555555,
    12: 0.027777777777777776
}

有什么建议吗?

2 个答案:

答案 0 :(得分:0)

我不知道任何编程语言在没有提及的情况下将表达式计算到浮点数。

如果是python,你应该使用模块fraction

答案 1 :(得分:0)

使用fractions模块和字符串格式,您可以打印像这样的有理数

import fractions
print("{}".format(fractions.Fraction(0.027777777777777776).limit_denominator()))

这将输出

1/36