• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Jak ustawić precyzję dla typu Decimal w obrębie całej klasy?

Konkurs Mistrz Programowania
+1 głos
671 wizyt
pytanie zadane 22 maja 2023 w Python przez whiteman808 Mądrala (5,470 p.)

Cześć

Mam taki kod

class Money:
    def __init__(self, amount: Decimal, currency: Currency, precision: int = 2):
        self.amount = amount
        self.currency = currency

    def __str__(self):
        return f"{self.amount} {self.currency.symbol}"

    def __repr__(self):
        return f"Money({self.amount!r}, {self.currency!r})"

Jak mogę ustawić precyzję dla zmiennej amount tak aby tylko w instancjach klasy Money precyzja wynosiła tyle ile jest ustawione w zmiennej precision?

Z góry dzięki

1 odpowiedź

0 głosów
odpowiedź 23 maja 2023 przez VBService Ekspert (256,600 p.)
edycja 23 maja 2023 przez VBService

IMO powinieneś zapisać precision jako 3 parametr

    def __init__(self, amount: Decimal, currency: str, precision: int = 2):
        self.amount = amount
        self.currency = currency
        self.precision = precision

no i dodać formatowanie do __str__ w oparciu o self.precision np.

{self.amount:.{self.precision}f}
    def __str__(self):
        return f"{self.amount:.{self.precision}f} {self.currency}"

przykład on-line lub on-line.

Podobne pytania

0 głosów
1 odpowiedź 832 wizyt
pytanie zadane 9 października 2020 w C# przez Igorek Mądrala (6,290 p.)
0 głosów
1 odpowiedź 768 wizyt
pytanie zadane 28 grudnia 2019 w C# przez mZq Nowicjusz (150 p.)
0 głosów
2 odpowiedzi 349 wizyt
pytanie zadane 21 lutego 2016 w C i C++ przez tarnasm Gaduła (3,030 p.)

93,652 zapytań

142,574 odpowiedzi

323,089 komentarzy

63,168 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...