Dezimalzahlen in Swift

8

Ich schreibe eine Swift-App und beschäftige mich mit Dezimalzahlen in einer Datenbank (gespeichert in mysql als Dezimalzahlen, mit zwei Ziffern. Grundsätzlich sind es Verkäufe, die jeden Tag gemacht werden, also generell von $ 0 bis $ 1000, aber nicht Millionen und nichts wahnsinnig in Bezug auf nachfolgende Dezimalstellen, nur immer auf 2 Dezimalstellen gerundet).

Das hat mir geholfen: Wie formatiere ich die Währung richtig auf ios

.. Aber ich wollte hier nur eine schnelle Vernunftprüfung durchführen und sicherstellen, dass diese Strategie in Ordnung ist. d. h. ich würde NSDecimal oder NSDecimalNumber verwenden (gibt es ein bevorzugtes Swift-Äquivalent ??)

Was würdest du allen empfehlen, wenn ich in Swift mit Währungen handle? Ich möchte auch das Gebietsschema-basierte Währungssymbol verwenden. Ich habe eine Klasse namens Sales, die den fraglichen Betrag enthält. Wie empfehlen Sie den Datentyp?

Entschuldigung, wenn ich faul bin, habe ich ein paar Ideen, was ich tun soll, fühle mich aber ein wenig überwältigt von der "richtigen" Herangehensweise, besonders in einer ortssensiblen Art, und wollte hier mit euch allen einchecken.

Vielen Dank!

    
NullHypothesis 14.08.2014, 00:15
quelle

2 Antworten

10

Update für Swift 3: Ein Decimal -Typ ist jetzt mit verfügbar integrierte Unterstützung für Operatoren wie * , / , + , < usw. Wenn sie in einem Any-Kontext (an Objective-C übergeben) verwendet wird, wird sie mit NSDecimalNumber überbrückt.

Alte Antwort:

NSDecimal wird in Swift nicht wirklich unterstützt (es ist ein merkwürdiger undurchsichtiger Zeigertyp), aber NSDecimalNumber ist - und wie in Obj-C, ist es das Beste, was man für die Basis-Zehn-Arithmetik verwenden kann (weil es tatsächlich seine Operationen in der Basis zehn ausführt). NSLocale , NSNumberFormatter und Freunde arbeiten ebenfalls und sollten Ihre Lokalisierungsanforderungen erfüllen.

    
jtbandes 14.08.2014, 00:21
quelle
3

Swift 3 hat jetzt einen Dezimaltyp (Wert), der zu NSDecimalNumber überbrückt wird.

    
Jon Hull 23.10.2016 20:17
quelle

Tags und Links