对于下面的代码:
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"
改为使用科学记数法?
对于下面的代码:
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"
改为使用科学记数法?
使用%f
:
ItemE[5]=[NSString stringWithFormat:@"@1. total inc = %f", j1];
编辑:
如果你不想要小数位,你应该使用:
ItemE[5]=[NSString stringWithFormat:@"@1. total inc = %.f", j1];
详细说明,您在格式字符串中使用了错误的说明符。%g
指示以科学计数法创建浮点变量的字符串表示。通常你应该使用%f
来表示double
和float
变量。默认情况下,此说明符将生成带 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
请尝试使用这个:
double j1 = 7000000.f;
NSLog(@"1. total inc = %.f", j1);
结果将是:
1. total inc = 7000000
我希望它有所帮助。