Notazione Scientifica

di il
1 risposte

Notazione Scientifica

Buon Giorno a tutti
Vorrei sottoporre questo problema di divisione di numeri grandi in quanto python non li gestisce bene.

Il problema è questo..... Dato un numero 342638197292754979757 il quale è divisibile per 37 e che da come risultato 9260491818723107561 su una calcolatrice normale.
In python 3 invece si verifica la seguente condizione... Se io divido il numero in questo modo a=int(n/37) e lo rimoltiplico per 37, il risultato è questo 342638197292754952192.

la funzione (Int) naturalmente serve per verificare che faccia la divisione e la moltiplicazione giusta in quanto (int) arrotonda all'intero, ma essendo gia il risultato un intero
non dovrebbe arrotondare niente e rimoltliplicandolo per lo stesso moltiplicatore riportarlo al valore originale.

Ringrazio chiunque voglia rispondere a questo quesito

1 Risposte

  • Re: Notazione Scientifica

    Probabilmente durante la divisione, il risultato viene convertito in float. Il che comporta la perdita di alcuni bit. Possibile soluzione: usare una libreria dedicata, tipo 'decimal':
    >>> from decimal import *
    >>> aa = Decimal(342638197292754979757)
    >>> ab = Decimal(37)
    >>> aa/ab*37
    Decimal('342638197292754979757')
Devi accedere o registrarti per scrivere nel forum
1 risposte