objective-C - 将浮点数转换为字符串的其他方法

objective-C - other methods to convert a float to string

提问人:Duck 提问时间:2/14/2011 更新时间:5/9/2017 访问量:52251

问:

我知道您可以使用以下命令将浮点数转换为字符串

NSString *myString = [NSString stringWithFormat:@"%f", myFloat];

我的问题是 Objective-C 中还有哪些其他方法可以做到这一点?

谢谢。

iPhone Objective-C

评论

3赞 John Parker 2/14/2011
为什么?(我很感兴趣。即:上面不需要什么?
2赞 Duck 2/14/2011
我只是在研究......在武器库中有替代品总是好的!:D
2赞 John Parker 2/14/2011
诚然,了解更多永远不会有什么坏处。:-)
2赞 Daniel Ryan 9/28/2012
而且与 Java 相比,它看起来非常长。你期望有一种更好的方法来做到这一点。

答:

6赞 TheAmateurProgrammer 2/14/2011 #1

您可以创建自己的类别方法。类似的东西

@interface NSString (Utilities)

+ (NSString *)stringWithFloat:(CGFloat)float

@end

@implementation NSString (Utilities)

+ (NSString *)stringWithFloat:(CGFloat)float
{
    NSString *string = [NSString stringWithFormat:@"%f", float];
    return string;
}

@end

编辑

将其更改为类方法,并将类型从 更改为 。floatCGFloat

您可以将其用作:

NSString *myFloat = [NSString stringWithFloat:2.1f];
4赞 0x8badf00d 2/14/2011 #2
float someVal = 22.3422f;
NSNumber* value = [NSNumber numberWithFloat:someVal];
NSLog(@"%@",[value stringValue]);
47赞 Jonathan. 2/14/2011 #3

您可以使用 NSNumber

NSString *myString = [[NSNumber numberWithFloat:myFloat] stringValue];

但是按照你的方式去做是没有问题的,事实上,你在问题中的方式更好。

评论

1赞 Jonathan. 2/14/2011
@Digital机器人;我忘了说您在问题中发布的方法是一个更好的方法,因为只有一个自动发布的对象(NSString),此方法有 2 个自动发布的对象;NSNumber 对象和 NSString 对象。感谢您接受:)
0赞 Duck 2/15/2011
啊,是的,但是我现在有一个案例,它非常适合,因为我正在从核心数据中检索 NSNumber 并且使用它是完美的。这就是为什么有替代方案来做同样的工作是件好事。当我收到 NSNumber 时,使用我的原始方法将其转换为字符串将是最糟糕的。再次感谢。
13赞 ram880 7/27/2015 #4

以简单的方式

NSString *floatString = @(myFloat).stringValue;