8

In Java, quando programmiamo denaro, è consigliabile utilizzare la classe BigDecimal per soldi. C'è qualcosa di simile in Python? Vorrei che qualcosa di orientato agli oggetti che può avere una valuta e un tasso di cambio, è stato fatto?Qual è il python per Java BigDecimal?

Memorizzo i soldi come numeri interi di centesimi (credo) e moltiplico con 100 per ottenere dollari ma ho anche valuta estera in modo che l'elenco dei listini ordinato per prezzo diventi scomodo quando gli articoli hanno valute diverse e sono anche elencati come prezzo all'ora o per articolo. Quindi idealmente vorrei una classe per soldi in python che ha tasso di cambio, valuta e che tipo di prezzo è, se il prezzo è per ora o per articolo.

Quindi suppongo che sto cercando una classe price e non una classe money, c'è già una cosa del genere? Il gae che sto programmando su non ha il tipo di dati decimale, quindi posso usare un numero intero che rappresenta solo la frazione o inventare qualcosa come una propria rappresentazione decimale dove la implemento.

+1

ordinare per prezzo in diverse valute sarà molto difficile. Le valute individuali fluttuano in relazione l'una con l'altra, il che significa che non è possibile ordinare quel tipo di valore dal datastore poiché sarebbe sempre sbagliato. –

+0

@TimHoffman Funziona se si ordina tutto per la quantità di oro che si può comprare? O stai dicendo che i valori fluttuano troppo frequentemente? –

+0

la valuta non è come il tempo e il fuso orario ;-) OP ha detto "ma ho anche una valuta straniera in modo che la quotazione ordinata per prezzo diventi scomoda quando gli articoli hanno valute diverse" in questa situazione l'OP non ha una valuta di base (presumo) su per fare un confronto coerente. Se il valore di base di un articolo è AU $ 100 e il valore base di un altro articolo US $ 100, al momento con entrambi i valori si aggirano intorno alla parità da un giorno all'altro, l'ordine sarà diverso. Qualsiasi valuta base funzionerebbe $ US per esempio, ordinata per valuta base e visualizzata in valuta locale, quindi l'ordinamento funzionerebbe. –

risposta

Problemi correlati