Пожалуйста, попробуйте это, это будет работать для меня.
Цель c
float input = 39.9959946;
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setRoundingMode: NSNumberFormatterRoundDown];
[numberFormatter setNumberStyle:NSNumberFormatterDecimalStyle];
[numberFormatter setMaximumFractionDigits:2];
NSString *numberString = [numberFormatter stringFromNumber:[NSNumber numberWithFloat:input]];
NSLog(@"NumberString: %@", numberString);
Swift
let input:Float = 39.9959946;
let numberFormatter:NumberFormatter = NumberFormatter()
numberFormatter.roundingMode = .down
numberFormatter.numberStyle = .decimal
numberFormatter.maximumFractionDigits = 2
let numberString:String = numberFormatter.string(from: NSNumber(value: input))!
print(numberString)
Вы можете получить идеальный результат в Objectiv-C и Swift /