このコードはあなたが望むものを達成します
float value1 = 1.0f;
float value2 = 1.5f;
NSString* formattedValue1 = (int)value1 == (float)value1 ? [NSString stringWithFormat:@"%d", (int)value1] : [NSString stringWithFormat:@"%1.1f", value1];
NSString* formattedValue2 = (int)value2 == (float)value2 ? [NSString stringWithFormat:@"%d", (int)value2] : [NSString stringWithFormat:@"%1.1f", value2];
こういうことはカテゴリーでできるのでどうでしょうか。
// untested
@imterface NSString (myFormats)
+(NSString)formattedFloatForValue:(float)floatValue;
@end
@implementation NSString (myFormats)
+(NSString)formattedFloatForValue:(float)floatValue
{
return (int)floatValue == (float)floatValue ? [NSString stringWithFormat:@"%d", (int)floatValue] : [NSString stringWithFormat:@"%1.1f", floatValue];
}
@end
// usage
NSLog(@"%@", [NSString formattedFloatForValue:1.0f]);
NSLog(@"%@", [NSString formattedFloatForValue:1.5f]);