NSNumberFormatter- Dezimalstellen 'trennen'

  • NSNumberFormatter- Dezimalstellen 'trennen'

    Hallöchen,

    hab da mal eine kleine Frage, es geht um Zahlen in Währungen. Da die App international funktionieren soll, sollte natürlich auch auf verschiedene Währungen bzg. ihrer Dezimalstellen Rücksicht genommen werden. Das ist in der aktuellen Umsetzung auch kein Problem!
    Aktuell wird der NSNumberFormatter so konfiguriert:

    Quellcode

    1. self.currencyFormatter = [[NSNumberFormatter alloc] init];
    2. [self.currencyFormatter setNumberStyle:NSNumberFormatterCurrencyStyle];
    3. [self.currencyFormatter setLocale:[NSLocale currentLocale]];
    4. [self.currencyFormatter setCurrencySymbol:@""];
    5. currencyScale = -1 * [self.currencyFormatter maximumFractionDigits];

    (Das Währungszeichen wird in der UI größer dargestellt und somit separat formatiert!)

    Jetzt gibt es allerdings einige Designgründe, die den Designer auf die Idee kommen ließen, evtl. vorhandene Nachkommastellen verkleinert separat darzustellen, um Platz für die 'eigentliche' Zahl (also vor dem Komma) zu haben. Da aber auch Nachkommastellen angezeigt werden sollen, ist diese Trennung der Kompromiss.

    Mir stellt sich jetzt doch die Frage, wie ich das sinnvoll trenne? Meine Zahl liegt als NSDecimalNumber vor. Natürlich muss ich damit auch Rücksicht nehmen auf Währungen, die mehr als zwei Nachkommastellen nutzen bzw. gar keine.
    Ich suche also einen Weg, um 'gut' diese beiden Zahlen zu trennen. Klar, ich könnte einen String draus machen, exploden und wieder umwandeln und dann als NSNumberFormatterCurrencyStyle darstellen, aber ist das eine annehmbare Lösung? :/


    LG Jan
  • um es darzustellen wirst du es ja wohl immer in einen string wandeln müssen oder?
    und das trennzeichen kennst du ja auch, also dessen position im string suchen und dann munter formatieren (dem attributed-string zb für die "nachkommastellen" eine andere größe oder irgendwelche passenden opentype-features zuweisen)