Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Python - Troncatura dei decimali
Forum - Python - Troncatura dei decimali

Avatar
zwack (Normal User)
Newbie


Messaggi: 10
Iscritto: 30/09/2011

Segnala al moderatore
Postato alle 10:35
Martedì, 04/10/2011
Ciao a tutti,
in una divisione con risultato decimale ad es.: 75123.54 / 95000 = 0.790774105;
ho bisogno di troncare il numero alle prime quattro cifre dopo la virgola e senza arrotondamento, nel caso indicato 0.7907, non ho ancora un codice da postare perchè sto facendo delle semplici prove.
Qualcuno sa dirmi come si fà?
Grazie a tutti.

PM
Avatar
()
Newbie


Messaggi:
Iscritto:

Up
2
Down
V
Segnala al moderatore
Postato alle 13:41
Martedì, 04/10/2011
Ciao,potresti usare la libreria decimal .Nella libreria decimal ci sono due funzioni getcontext() e quantize() entrambe con gli opportuni parametri settati permettono di  troncare :)
Un esempio con getcontext():
Codice sorgente - presumibilmente Python

  1. from decimal import *
  2. def tronca(p):
  3.         getcontext().prec= p  #setta una precisiona (es: p= 4 con il numero 7.89991, verrà troncato a 7.8999)
  4.         getcontext().rounding = ROUND_DOWN  #non arrotonda
  5.         n1 =75123.54
  6.         n2 =95000
  7.         r = Decimal(n1) / Decimal(n2)
  8.         return r



ed uno con  quantize():
Codice sorgente - presumibilmente Plain Text

  1. x = 75123.54  /  95000
  2. Decimal(x).quantize(Decimal('.0001'), rounding=ROUND_DOWN)


per saperne di più

http://docs.python.org/library/decimal.html

L'ho testato su python 2.7

Ciao  :D

Ultima modifica effettuata da il 04/10/2011 alle 13:44
Funziona, grazie per la risposta e la velocità. - zwack - 05/10/11 15:48
PM
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6380
Iscritto: 03/01/2010

Up
0
Down
V
Segnala al moderatore
Postato alle 10:45
Martedì, 04/10/2011

Ultima modifica effettuata da nessuno il 04/10/2011 alle 10:52
Grazie per la risposta. Purtroppo credo di non essere ancora pronto per migrare a py3. - zwack - 05/10/11 15:49


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità.
PM