我正在尝试将一个数字除以另一个很小的数字。 “q”始终是一个介于 0 和 1 之间的浮点数,当 n 超过 1000 时,输出表示“浮点除以零”,因为它将小数字四舍五入为零。我已经尝试使用 Decimal 但仍然无法正常工作
#Librerías
import numpy as np
import matplotlib.pyplot as plt
from decimal import Decimal
#Datos
p = float(input("Introduzca probabilidad de error de bit: "))
while p < 0 or p > 1:
p = float(input("Introduzca probabilidad de error de bit: "))
n = int(input("Introduzca número de bits: "))
while n < 0:
n = int(input("Introduzca número de bits: "))
#Cálculos
q = 1-p
pexito = (q**n)
intentos = 1/pexito
print()
print("El número medio de intentos es:",intentos)
print()
print("La probabilidad de transmitir correctamente",n,"bits es:",pexito)
ZeroDivisionError Traceback (most recent call last)
<ipython-input-10-606e023fc7ec> in <module>
15 q = 1-p
16 pexito = (q**n)
---> 17 intentos = 1/pexito
18 print()
19 print("El número medio de intentos es:",intentos)
ZeroDivisionError: float division by zero
原文由 Juan Antonio Ramírez Peña 发布,翻译遵循 CC BY-SA 4.0 许可协议
尝试提高 精度: