Ich dachte, das wäre ziemlich geradlinig, aber ich kann mich nicht damit abfinden oder eine bestehende Frage finden, die meine Situation abdeckt.
Ursprünglich habe ich eine Anzahl von Variablen wie folgt eingerichtet:
%Vor%Das hat alle meine Werte in Ordnung gebracht, aber ich hatte Probleme mit dem Prozentsatz.
Meine Grundformel für den Prozentsatz lautet:
%Vor%Ich konnte dies jedoch nicht anzeigen lassen, wenn der Wert in einem Text-Label verwendet wurde.
Nach einigen Nachforschungen änderte ich stattdessen meine Variablen:
%Vor%Und immer noch die gleiche Formel für den Prozentsatz verwendet:
%Vor%Obwohl dies okay angezeigt wurde, wollte ich nicht alle Dezimalstellen. Nach etwas mehr Recherche stieß ich in einer anderen Frage auf eine Erweiterung und passte sie für meine Anwendung an. Meine Erweiterung ist:
%Vor%Und ich habe versucht, die Erweiterung wie folgt zu verwenden:
%Vor%Das Endergebnis ist, dass dies ziemlich nah an dem ist, was ich möchte. Es zeigt jedoch immer noch den Prozentwert auf 1 Dezimalstelle an. (Übrigens, es ist nicht korrekt - was ich meine ist, dass wenn der Punktestand 1 ist und die Anzahl der Fragen 3 ist, der obige Code den Prozentsatz als 33.0 statt 33.3 anzeigt, aber ich schweife ab)
Was ich eigentlich möchte, ist der Wert, der auf die nächste ganze Zahl auf- oder abgerundet wird, bevor der Wert angezeigt wird. Mit anderen Worten, was ich will ist
Das heißt, ich möchte keine Dezimalstellen im angezeigten Ergebnis haben. Momentan läuft es richtig auf und ab, aber am Ende wird ".0" angezeigt. Wenn dies nicht möglich ist, möchte ich, dass es korrekt auf einer Dezimalstelle angezeigt wird.
Ich bin neu im Programmieren und Swift ist die erste Sprache, die ich versuche zu lernen, also ist das vielleicht nur ein Anfängerfehler, aber ich kann wirklich nicht finden, was ich falsch mache.
Wie bekomme ich das zum Laufen?
Sie können den Formatspezifizierer von NSString verwenden und ihn Ihrem Double hinzufügen Erweiterung als Funktionen.
%Vor%In reiner Ganzzahlarithmetik
%Vor%würde den Trick machen.
Wie funktioniert das? Berechnen des Prozentsatzes als
%Vor%schneidet das Ergebnis der Division gegen Null ab. Für das gewünschte Rundungsverhalten müssten wir berechnen
%Vor%in Gleitkommaarithmetik und dann das Ergebnis auf eine Ganzzahl abschneiden. Kombinierende Begriffe geben den Ausdruck
%Vor%welches, wenn es in Integer-Arithmetik berechnet wird, das korrekte Ergebnis liefert.
Sie können die Runde selbst machen. Ich gehe von einer Eins-zu-eins-Bewertung aus. Ich habe einige Nummern angeschlossen, damit du sie auf einen Spielplatz einfügen kannst. Sie können den Wert in "If left" ändern, wenn Sie möchten. .51 usw. Nur weil das IRS Sie bei 50 Cent abrundet, bedeutet das nicht, dass Sie müssen.
%Vor%Tags und Links swift