我想把所有小数位的1/n
都放到Python的列表中。Python中的小数位数
def dec(n):
result = float(1)/n
while (result >= 1):
result = result - 1
while (result != 0):
result = result * 10
decimals = int(result)
yield(decimals)
result = result - decimals
然而,当我试图list(dec(3))
,它并没有给我一个完整的3S,但列表,而不是像[3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 3, 7, 2]
我应该怎样解决这个问题?
您是否知道一个Python列表不能永远持续下去? – user2357112 2015-04-03 05:15:08
另外请注意,浮点精度是一件事情。在电脑中漂浮像病人 - 你对他们做了太多的操作,他们死了。 (嗯,不是真的,但请阅读http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html)如果你想要做无限精确的分割,只需要自己实现这个分叉算法,只使用整数。 – Amadan 2015-04-03 05:17:39
@ user2357112是的,但即使如此,我想要一种方式,我可以得到所有3s,而不是其他数字。我想我需要一些技巧,因为我的代码没有错,但它没有给我预期的结果 – viethaihp291 2015-04-03 05:17:52