您知道如何将浮点值转换为nsstring值,因为我的代码存在错误。
我的代码:
- (float)percent:(float)a :(float)b{
return a / b * 100;
}
- (void)objectLoader:(RKObjectLoader*)objectLoader didLoadObjects:(NSArray*)objects {
// ....
float tx_nb_demande_portabilite = [self percent: [(NSNumber*) [stat nb_demande_portabilite] floatValue] :[(NSNumber*) [stat nb_users] floatValue]];
NSString *tx_nb_demande_portabilite_st = [NSString stringWithFormat:@"%@", tx_nb_demande_portabilite];
//....
}
错误:
EXC_BAD ACCESS for NSString *tx_nb_demande_portabilite_st = [NSString stringWithFormat:@"%@", tx_nb_demande_portabilite];
感谢您的帮助。
答案 0 :(得分:46)
您需要为float使用%f
格式说明符,而不是%@
。
NSString *str = [NSString stringWithFormat:@"%f", myFloat];
使用小数点后使用的特定位数%.nf
,其中n是小数点后的位数。
// 3 digits after decimal point
NSString *str = [NSString stringWithFormat:@"%.3f", myFloat];
Obj-C使用C printf
样式格式。请检查printf man page以了解所有其他可能的格式。
答案 1 :(得分:4)
还有一个选择:
NSString * str = [NSNumber numberWithFloat:value].stringValue;
答案 2 :(得分:1)
@"%f"
听起来更适合float
的格式字符串。
答案 3 :(得分:1)
[NSString stringWithFormat:@"%f", tx_nb_demande_portabilite];
答案 4 :(得分:0)
现代(并且不那么详细)的方法是:
NSString *str = @(myFloat).description;