Sympy.Rational 不能正确处理 1/3 这样的分数
Sympy.Rational doesn't work correctly with fractions like 1/3
我有这个代码:
import sympy as smp
a = smp.Rational(1/3)
print('1/3: ', a)
a = smp.Rational(1/6)
print('1/6: ', a)
a = smp.Rational(1/2)
print('1/2: ', a)
a = smp.Rational(1/4)
print('1/4: ', a)
这个结果:
1/3: 6004799503160661/18014398509481984
1/6: 6004799503160661/36028797018963968
1/2: 1/2
1/4: 1/4
sympy 无法正确处理不同的分数,例如 1/3、1/5、1/6 等。
我该如何解决这个问题?
There is an example
当你写 1/3
时,它会立即执行除法。所以
sympy.Rational(1/3)
与
相同
sympy.Rational(6004799503160661/18014398509481984)
因为在 Python,
1/3 == 6004799503160661/18014398509481984
您必须将分子和分母传递给 Rational 工厂:
sympy.Rational(1, 3)
我有这个代码:
import sympy as smp
a = smp.Rational(1/3)
print('1/3: ', a)
a = smp.Rational(1/6)
print('1/6: ', a)
a = smp.Rational(1/2)
print('1/2: ', a)
a = smp.Rational(1/4)
print('1/4: ', a)
这个结果:
1/3: 6004799503160661/18014398509481984
1/6: 6004799503160661/36028797018963968
1/2: 1/2
1/4: 1/4
sympy 无法正确处理不同的分数,例如 1/3、1/5、1/6 等。 我该如何解决这个问题?
There is an example
当你写 1/3
时,它会立即执行除法。所以
sympy.Rational(1/3)
与
相同sympy.Rational(6004799503160661/18014398509481984)
因为在 Python,
1/3 == 6004799503160661/18014398509481984
您必须将分子和分母传递给 Rational 工厂:
sympy.Rational(1, 3)