将NSDecimalNumber转换为NSString
我从一个看起来像这样的对象检索一个键:
po obj { TypeID = 3; TypeName = Asset; }
键值正在像这样被检索:
NSString *typeId = (NSString*)[obj objectForKey:@"TypeID"];
typeId不是NSString,而是NSDecimalNumber。 这是为什么?
我如何将其转换为NSString?
你需要使用stringWithFormat
函数:
NSString *typeId = [NSString stringWithFormat:@"%@", [obj objectForKey:@"TypeID"]];
或stringValue
:
NSString *typeId = [[obj objectForKey:@"TypeID"] stringValue];
这应该工作:
NSString *typeId = [[obj objectForKey:@"TypeID"] stringValue];
如果你想获得string值,只需使用“描述”。 它工作正常,即使返回types是NSDecimalNumber,或NSString,或其他:
NSString *typeId = [[obj objectForKey:@"TypeID"] description];
由于这是最高的search结果,我没有看到NSDecimalNumber在Swift中的string的问题,在这里。 这将显示局部小数点分隔符和所有小数位的非零值。
let string = decimalNumber.description(withLocale: Locale.current)
使用这个将NSDecimalNumber转换为NSString:
NSDecimalNumber* dec1; NSString* str; str = dec1.stringValue;
使用这个将NSString转换为NSDecimalNumber:
NSString* string1 = @"Stack overflow 123"; NSDecimalNumber* dec; dec = (NSDecimalNumber *)string1;