этот код работает
CGFloat x = 2.43;
// CGFloat x = 3.145;
// CGFloat x = 2.0003;
// CGFloat x = 1.0;
// CGFloat x = 3.1415926535;
NSLog(@"%f -> %@", x, @([self numberOfFractionDigits:x]));
- (NSString *)numberOfFractionDigits:(CGFloat)number {
CGFloat fractionalPart = number - (NSInteger)number;
NSMutableString *r = [NSMutableString stringWithString:@""];
while (fractionalPart) {
[r appendFormat:@"%@", @((NSUInteger)(fractionalPart * 10 + .5))];
number *= 10;
fractionalPart = number - (NSInteger)number;
}
return r;
}
выход:
2,430000 -> 43
3.145000 -> 145
2.000300 -> 0003
1.000000 ->
3.141593 -> 1415926535 // для x = 3.1415926535;