Cómo obtener String con dos decimales en la aplicación de iPhone

Tengo una aplicación en la que tengo un método que inserta coma en NSString en miles de valores. También quiero incluir decimall como si ingresara ahora 1000, entonces muestra 1,000 utilizando este método, pero quiero 1,000.00 como este. Aquí está mi método, cualquier idea de cómo solucionarlo. este problema.

- (NSString *)formatStringF:(NSString *)string {
// Strip out the commas that may already be here:
NSString *newString = [string stringByReplacingOccurrencesOfString:@"," withString:@""];
if ([newString length] == 0) {
    return nil;
}

// Check for illegal characters
NSCharacterSet *disallowedCharacters = [[NSCharacterSet characterSetWithCharactersInString:@"0123456789."] invertedSet];
NSRange charRange = [newString rangeOfCharacterFromSet:disallowedCharacters];
if ( charRange.location != NSNotFound) {
    return nil;
}

// Split the string into the integer and decimal portions
NSArray *numberArray = [newString componentsSeparatedByString:@"."];
if ([numberArray count] > 2) {
    // There is more than one decimal point
    return nil;
}

// Get the integer
NSString *integer           = [numberArray objectAtIndex:0];
NSUInteger integerDigits    = [integer length];
if (integerDigits == 0) {
    return nil;
}


// Format the integer.
// You can do this by first converting to a number and then back to a string,
// but I would rather keep it as a string instead of doing the double conversion.
// If performance is critical, I would convert this to a C string to do the formatting.
NSMutableString *formattedString = [[NSMutableString alloc] init];
if (integerDigits < 4) {
    [formattedString appendString:integer];
} else {
    // integer is 4 or more digits
    NSUInteger startingDigits = integerDigits % 3;
    if (startingDigits == 0) {
        startingDigits = 3;
    }
    [formattedString setString:[integer substringToIndex:startingDigits]];
    for (NSUInteger index = startingDigits; index < integerDigits; index = index + 3) {
        [formattedString appendFormat:@",%@", [integer substringWithRange:NSMakeRange(index, 3)]];
    }
}

// Add the decimal portion if there
if ([numberArray count] == 2) {
    [formattedString appendString:@"."];
    NSString *decimal = [numberArray objectAtIndex:1];
    if ([decimal length] > 0) {
        [formattedString appendString:decimal];
    }
}






return formattedString;
 }

Respuestas a la pregunta(1)

Su respuesta a la pregunta