字符串格式表示法

时间:2012-08-11 16:07:19

标签: iphone objective-c xcode

对于以下代码:

double j1;

j1=7000000    //example
ItemE[5]=[NSString stringWithFormat:@"@1. total inc = %g", j1];

ItemE [5]以"1.total inc = 7e +06"

的形式返回

如何阻止科学记数法并改为"1.total inc = 7000000"

2 个答案:

答案 0 :(得分:4)

使用%f

ItemE[5]=[NSString stringWithFormat:@"@1. total inc = %f", j1];

修改

如果你不想要小数位,你应该使用:

ItemE[5]=[NSString stringWithFormat:@"@1. total inc = %.f", j1];

详细说明,您在格式字符串中使用了错误的说明符。%g指示以科学计数法创建浮点变量的字符串表示形式。通常,您应该使用%f来表示doublefloat变量。默认情况下,此说明符将生成带有6个小数位的数字。为了更改它,您可以修改该说明符,例如:

%5.3f表示字符串应该有3个小数位,长度应为5个字符。这意味着如果表示将短于5个字符,字符串将在数字前面有额外的空格,总共给出5个字符。请注意,如果您的数字很大,则不会被截断。考虑代码:

double pi = 3.14159265358979323846264338327950288;
NSLog(@"%f", pi);
NSLog(@"%.3f", pi);
NSLog(@"%8.3f", pi);
NSLog(@"%8f", pi);
NSLog(@"%.f", pi);

将给出结果:

3.141593
3.142
   3.142
3.141593
3

答案 1 :(得分:2)

请尝试使用这个:

double j1 = 7000000.f;
NSLog(@"1. total inc = %.f", j1);

结果将是:

1. total inc = 7000000

我希望它有所帮助。