Carpediem <i.carpediem <at> tiscali.it> writes: > > [...] > Qualcuno potrebbe avere la gentilezza di spiegarmi questo comportamento? > e soprattutto, c'è un modo per chiedere un arrotondamento in eccesso per > la n cifra decimale? > So che potrei ottenere un numero intero utilizzando per la divisione > l'operatore // ma sono particolarmente interessato a capire e risolvere > il problema contemplando l'utilizzo dei numeri in virgola mobile. > Potete aiutarmi? > Grazie. >
Ciao, Il numero che ottieni con la calcolatrice è approssimato. Infatti, per il calcolo con i decimali e le currency in genere è preferibile usare decimal, non i float (e potrei andare off topic raccontandoti degli aneddoti :-) ). >>> import decimal >>> sb = 3287628061 >>> decimal.Decimal(sb) >>> decimal.Decimal(sb) / decimal.Decimal(60) Decimal('54793801.01666666666666666667') Come puoi notare il valore che ottieni è diverso da quello della calcolatrice. Avendo un decimal ora ottieni 1 se nelle tue conversioni converti tutto in int. >>> (mb - m1) * 60 Decimal('1.00000000000000000020') >>> int((mb - m1) * 60) 1 Nella documentazione trovi la spiegazione, ci sono pure degli esempi di arrotondamento con la funzione round https://docs.python.org/2/tutorial/floatingpoint.html Sani. Strap _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python