将NSDecimalNumber转换为NSString

时间:2010-04-04 05:00:39

标签: objective-c ios cocoa-touch nsstring nsdecimalnumber

我正在从一个看起来像这样的对象中检索一个键:

po obj
{
  TypeID = 3;
  TypeName = Asset;
}

正在检索键值:

NSString *typeId = (NSString*)[obj objectForKey:@"TypeID"];

它不是typeId是NSString,而是NSDecimalNumber。那是为什么?

如何将其转换为NSString?

5 个答案:

答案 0 :(得分:32)

您需要使用stringWithFormat功能:

NSString *typeId = [NSString stringWithFormat:@"%@", [obj objectForKey:@"TypeID"]];

stringValue

NSString *typeId = [[obj objectForKey:@"TypeID"] stringValue];

答案 1 :(得分:3)

这应该有效:

NSString *typeId = [[obj objectForKey:@"TypeID"] stringValue];

答案 2 :(得分:1)

如果您想获取字符串值,只需使用“description”即可。即使返回的类型是NSDecimalNumber,NSString,或其他任何东西,它也可以正常工作:

NSString *typeId = [[obj objectForKey:@"TypeID"] description];

答案 3 :(得分:1)

由于这是最热门的搜索结果,我在Swift中看不到NSDecimalNumber到String的问题,这里是。这将显示本地化的小数点分隔符和具有非零值的所有小数位。

let string = decimalNumber.description(withLocale: Locale.current)

答案 4 :(得分:-1)

使用它将NSDecimalNumber转换为NSString:

NSDecimalNumber* dec1;
NSString* str;

str = dec1.stringValue;

使用它将NSString转换为NSDecimalNumber:

NSString* string1 = @"Stack overflow 123";
NSDecimalNumber* dec;

dec = (NSDecimalNumber *)string1;