objective c float numer conversion
问题描述:
float f2,f1 = 123.125;
它们之间有什么不同?objective c float numer conversion
float f1 = 123.125,f2;
,如果我写的代码为
float f1,f2 = 123.125
程序将有不同的结果
这里是完整的程序
float f2,f1 = 123.125;
//float f1 = 123.125,f2;
int i1,i2 = -150;
i1 = f1; //floating to integer
NSLog(@"%f assigned to an int produces %i",f1,i1);
f1 = i2; //integer to floating
NSLog(@"%i assigned to a float produces %f",i2,f1);
f1 = i2/100; //integer divided by integer
NSLog(@"%i divied by 100 prouces %f",i2,f1);
f2= i2/100.0; //integer divided by a float
NSLog(@"%i divied by 100.0 produces %f",i2,f2);
f2= (float)i2 /100; // type cast operator
NSLog(@"(float))%i divided by 100 produces %f",i2,f2);
答
float f2,f1 = 123.125; // here you leave f2 uninitialized and f1 is initialized
float f1 = 123.125,f2; // here you leave f2 uninitialized and f1 is initialized
float f1,f2 = 123.125; // here you leave f1 uninitialized and f2 is initialized
,如果你要初始化你需要做的
float f1 = 123.125f, f2 = 123.125f;
两个变量最好你写这样的(为便于阅读)
float f1 = 123.125f;
float f2 = 123.125f;
注意 “F” 后缀,表示它是一个浮点值而不是双精度值。
你也可以做一个定义
#define INITVALUE 123.125f
float f1 = INITVALUE;
float f2 = INITVALUE;
+0
在此上下文中,“f”后缀是可选的,因为编译器会适当地更改文字的类型。 :) – 2012-07-20 09:15:51
+1
这不是事实,编译器将文字的类型转换为声明对象的类型,使其在此上下文中成为可选项。事实上,这个文字不会被转换改变。大多数双重文字在转换时会改变值,并且有些改变为与以“f”后缀的相同文字不同的值。 – 2012-07-20 17:44:02
有啥从NSLogs输出?? – samfisher 2012-07-20 07:13:12