Frage

Das sieht aus wie ein Fehler in der API:

Wenn meine Eingabe CGFloat 0.0 ist, dass ich diese:

Input = 0.000000, Output = +0

Wenn mein Eingang CGFloat 1.0 ist, dass ich diese:

Input = 1.000000, Output = +2

Ganz offensichtlich ist das nicht, was ich will; -)

Jetzt ist hier, wie ich schaffen, dass NSNumberFormatter Objekt:

    NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
    [formatter setAlwaysShowsDecimalSeparator:NO];
    [formatter setAllowsFloats:YES];
    [formatter setFormatterBehavior:NSNumberFormatterBehavior10_4];
    [formatter setMinimumFractionDigits:0];
    [formatter setPlusSign:@"+"];
    [formatter setMinusSign:@"-"];
    [formatter setPositivePrefix:@"+"];
    [formatter setNegativePrefix:@"-"];
    [formatter setRoundingMode:NSNumberFormatterRoundUp];

und das ist, wie ich lasse es formatiert meine CGFloat von 1.0f:

CGFloat myValue = 1.0f;     
NSNumber *number = [NSNumber numberWithFloat:myValue];
NSLog(@"Input = %f, Output = %@", myValue, [self.inputValueFormatter stringFromNumber:number]);

Auch die roundingMode das Problem hier sein? Welche soll ich angeben? Oder gibt es eine andere Ursache für dieses seltsame Verhalten?

War es hilfreich?

Lösung

das Hinzufügen scheint für mich, den Trick zu tun, obwohl ich bin mir nicht sicher, warum es funktioniert:

[formatter setRoundingIncrement: [NSNumber numberWithFloat: 1]];
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top