Python的转换分数为十进制
我想转换1/2蟒蛇所以,当我说打印X(其中x = 1/2)返回0.5Python的转换分数为十进制
我要寻找这样做的最基本的方法,没有使用任何拆分功能,循环或地图
我试过浮法(1/2),但我得到0 ... 有人可以解释我为什么以及如何解决它?
是否有可能做到这一点,而无需修改变量x = 1/2?
感谢
在Python 3.x任何部分返回一个浮点数;
>>> 1/2
0.5
以实现在Python 2.x中,你必须强制浮充转换:
>>> 1.0/2
0.5
或从 “未来”
>>> from __future__ import division
>>> 1/2
0.5
一个额外的导入师:没有内置分数类型,但在官方库中有:
>>> from fractions import Fraction
>>> a = Fraction(1, 2) #or Fraction('1/2')
>>> a
Fraction(1, 2)
>>> print a
1/2
>>> float(a)
0.5
等等...
你可能正在使用Python 2.你可以“修复”师使用:
from __future__ import division
在脚本的开始(在任何其他进口)。默认情况下,在Python 2中,/
运算符在使用整数操作数时执行整数除法操作,舍弃结果的小数部分。
这已在Python 3中进行了更改,因此/
始终是浮点除法。新的//
运算符执行整数除法。
我不能把它放在一个函数中..它给我一个错误,说该行必须放在文件的开始处.. – Kartik 2011-01-30 07:38:20
或者,您可以通过指定小数或乘以1.0来强制进行浮点除法。例如(从Python解释器):
>>> print 1/2
0
>>> print 1./2
0.5
>>> x = 1/2
>>> print x
0
>>> x = 1./2
>>> print x
0.5
>>> x = 1.0 * 1/2
>>> print x
0.5
编辑:看来我被打在了它输入了我的反应:)
没有数量1/2
任何地方的时间一拳。 Python不能用内置类型表示有理数 - 只是整数和浮点数。 1除以2 - 遵循整数除法规则 - 产生0. float(0)
为0.
如果输入的是一个字符串,那么你可以直接输入用分数:
from fractions import Fraction
x='1/2'
x=Fraction(x) #change the type of x from string to Fraction
x=float(x) #change the type of x from Fraction to float
print x
你能否解释越多,你的意思是用'不修改变量x = 1/2`? – eat 2011-01-30 10:59:59
作为你正在参加的课程的一部分,这是一个诡计问题吗?如果是这样,请将其标记为[作业]。 – 2011-01-30 13:04:07