Foro de consultas

Consultas TP1 2025 1C

Re: Consultas TP1 2025 1C

de GAMBOA LEON SAMUEL RICARDO -
Número de respuestas: 2
Hola buenas noches. Una duda, estaba buscando formas de configurar la cantidad de cifras significativas que se tomen en cuenta para todas las operaciones aritméticas de la resolución de un sistema pero no estoy pudiendo encontrar algo que de verdad me esté ajustando esto.

Encontré como solución el importar Decimal y luego usar la función getcontext().prec = cantidad de cifras significativas, pero parece que no está funcionando.

Gracias.
En respuesta a GAMBOA LEON SAMUEL RICARDO

Re: Consultas TP1 2025 1C

de SARTI MARINA -
Buenas! Si, es un poco complicado eso. Varias cosas:
1) sugiero que lo metan en una función que reciba el numero y devuelva el numero redondeado a 3 cifras significativas. La sintaxis para armar funciones en python es sencilla, la pueden encontrar en internet
2) para quedarse solamente con 3 digitos significativos, hay que usar la funcion np.round(a, b), donde a es el numero a redondear y b es la cantidad de decimales a los que se quiere redondear (si b>=0 la función redondea a "b" decimales, si b<0 ya empieza a pisar las cifras no decimales con ceros). El tema es que b depende de que tan grande sea el numero.
3) Para sacar b pueden considerar la siguiente expresion:
x_redondeado = round(x, -int(np.floor(np.log10(abs(x)))) + (n - 1)) --> siendo x el numero a redondear y n la cantidad de digitos significativos a la que se quiere redondear. Esto lo que hace es, obtener el logaritmo en base 10 del modulo del numero,  y a ese logaritmo redondearlo al entero más cercano hacia abajo, lo cual nos dice en que orden de magnitud está x. Luego hace una cuenta (sumarle 3 -1 = 2 en este caso) para obtener cual debe ser ese b.
4) Entonces, metan esa expresión en una función y usenla cuando van haciendo cada cuenta (por ejemplo, reemplazar m21 = a21/a11 por m21 = Redondea(a21/a11) , siendo Redondea( ) la función que deben haber definido y corrido en otra celda previamente a usarla.
Cualquier cosa consulten nuevamente. Saludos!