

# 小数点以下20桁まで計算する精度を設定
getcontext().prec = 21 # 整数部+小数点+20桁 = 21桁
# 円周率を計算する(アルキメデスの方法に基づくライプニッツの公式)
def calculate_pi():
pi = Decimal(0)
k = 0
while k < 100000: # ループ回数を多めに設定して精度を上げる
pi += Decimal((-1)**k) / Decimal(2*k + 1)
k += 1
return pi * 4
# πを計算して表示
pi_value = calculate_pi()
print(f"π (20桁まで): {pi_value}")