计算更多除法的19位数字
calculating more the 19 digits of division
我想制作一个 python 程序,将 python 中的 '1/7' 相除 但是 我得到的只是: 0.14285714285714285
.如何计算小数点后的更多位数?
您应该使用 decimal
数据类型而不是 float
。它在标准库中。
在 decimal docs 的顶部有一个指定精度的 1/7
示例。
十进制库允许您指定任意精度。页面 here 上有一个示例。否则你可以编写自己的代码来计算数字。
def div(a,b,n):
"""return [w,d1,d2,...dn] where a/b=w.d1d2...dn
Examples
========
>>> div(1,7,10)
[0, 1, 4, 2, 8, 5, 7, 1, 4, 2, 8]
>>> div(10,7,4)
[1, 4, 2, 8, 5]
"""
w, r = divmod(a, b)
rv = [w]
for i in range(n):
w, r = divmod(r*10,b)
rv.append(w)
return rv
我想制作一个 python 程序,将 python 中的 '1/7' 相除 但是 我得到的只是: 0.14285714285714285
.如何计算小数点后的更多位数?
您应该使用 decimal
数据类型而不是 float
。它在标准库中。
在 decimal docs 的顶部有一个指定精度的 1/7
示例。
十进制库允许您指定任意精度。页面 here 上有一个示例。否则你可以编写自己的代码来计算数字。
def div(a,b,n):
"""return [w,d1,d2,...dn] where a/b=w.d1d2...dn
Examples
========
>>> div(1,7,10)
[0, 1, 4, 2, 8, 5, 7, 1, 4, 2, 8]
>>> div(10,7,4)
[1, 4, 2, 8, 5]
"""
w, r = divmod(a, b)
rv = [w]
for i in range(n):
w, r = divmod(r*10,b)
rv.append(w)
return rv