2012-08-11 174 views
0

对于下面的代码:字符串格式符号

double j1; 

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

ItemE [5]如何防止科学记数法,并有"1.total inc = 7000000"而不是返回为"1.total inc = 7e +06"

回答

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 
+0

而且,作为参考,“stringWithFormat:”的文档具有指向“字符串格式说明符”页面的链接。 – 2012-08-11 16:11:29

+0

(https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/Strings/Articles/Formatspecifiers.html#//apple_ref/doc/uid/TP40004265-SW1)适合那些想要方便链接的人 – Vervious 2012-08-11 18:06:09

+0

@Phillip米尔斯,那么我得到7000000.000000我不需要小数点后的数字。我是否需要转换为整数或有格式化的方式吗? – 2012-08-11 18:29:34

2

请尝试使用此一:

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

的结果将是:

1. total inc = 7000000 

希望它有助于。

+0

是的。 ty洞。 – 2012-08-11 19:44:12