大家好我正在使用以下方法从NSNumber中获取字符串
-(NSString *)stringFromNumber:(NSNumber *)number
{
NSLog(@"Input:---%@",number);
NSNumberFormatter *numFormatter = [[[NSNumberFormatter alloc] init] autorelease];
[numFormatter setMaximumFractionDigits:5];
[numFormatter setMinimumFractionDigits:2];
//[numFormatter setExponentSymbol:@"e"];
NSString *str_num = [numFormatter stringFromNumber:number];
NSLog(@"Output:---%@",str_num);
return str_num;
}
在控制台中我得到如下
Input:---2.940000057220459
Output:---2.94
Input:---2940.000057220459
Output:---2940.00006
Input:---2.940000057220459e-15
Output:---.00
Input:---2.940000057220459e-12
Output:---.00
Input:---2.940000057220459e-09
Output:---.00
Input:---2.940000057220459e-06
Output:---.00
Input:---0.002940000057220459
Output:---.00294
但是对于上面的输入(顺序)我需要输出如下所示
---2.94
---2940
---2.94e-15
---2.94e-12
---2.94e-6
---2.94e-9
---0.00294
我该怎么办?有人请帮助我。
答案 0 :(得分:1)
setMinimumFractionDigits:
setMinimumIntegerDigits:
答案 1 :(得分:1)
我试过这个
-(NSString *)stringFromNumber:(NSNumber *)number
{
NSLog(@"Input:---%@",number);
NSNumberFormatter *numFormatter = [[NSNumberFormatter alloc] init];
[numFormatter setMaximumFractionDigits:5];
[numFormatter setMinimumFractionDigits:2];
NSString *temp = [NSString stringWithFormat:@"%@",number];
NSRange range = [temp rangeOfString:@"e"];
if(range.length > 0){
[numFormatter setNumberStyle:NSNumberFormatterScientificStyle];
[numFormatter setExponentSymbol:@"e"];
}
NSString *str_num = [numFormatter stringFromNumber:number];
NSLog(@"Output:---%@",str_num);
return str_num;
}
并且喜欢这个
Input:---2.940000057220459
Output:---2.94
Input:---2940.000057220459
Output:---2940.00006
Input:---2.940000057220459e-15
Output:---2.94e-15
Input:---2.940000057220459e-12
Output:---2.94e-12
Input:---2.940000057220459e-09
Output:---2.94e-9
Input:---2.940000057220459e-06
Output:---2.94e-6
Input:---0.002940000057220459
Output:---.00294