我正在尝试创建一个程序,通过使用decimal模块来查找2的平方根的第n位数字
√2 = 1.414213(5)6237309504880168872420969807856967187537694......
如果用户请求第8位数字,则程序生成8位数字√2(1.4142135)并打印最后一位数字(5)
nth_digit_of_sqrt_of_2 = 8 # i wanna find the 8th digit of √2
expected_sqrt_of_2 = "14142135" # 5 first digits of √2 (no decimal point)
expected_answer = 5 # the last digit
但实际上发生了什么
from decimal import Decimal, getcontext
getcontext().prec = nth_digit_of_sqrt_of_2 # set precision to 5 digits
decimal_sqrt_of_2 = Decimal('2').sqrt()
decimal_sqrt_of_2 = str(decimal_sqrt_of_2).replace('.', '') # convert to string and remove decimal point
print(decimal_sqrt_of_2)
# actual_sqrt_of_2 = 14142136
# actual_answer = 6
我尝试使用ROUND_DOWN和ROND_FLOOR,但似乎也不起作用
2条答案
按热度按时间f87krz0w1#
你可以试试这个:
jv2fixgn2#
您可以使用以下命令获取数字:
**编辑:**如果您想要更多位数,您可以自定义自己的功能。
假设你需要1000位2的平方根数字,你可以得到
现在,如果您想要第8位数字,则: