object类型如何转换成float型的?

来源:百度知道 编辑:UC知道 时间:2024/05/23 19:51:52
RT

不同数据类型的数据是可以转换成同一种数据类型,然后进行计算。转换的方法有两种,一种是自动转换,一种是强制转换。自动转换发生在不同数据类型的数据混合运算时,由系统自动完成。Objective-C 编译器会遵循一些非常严格的规则,编译器按照下面的顺序转换不同类型的操作数。
①如果其中一个数是long double类型的,那么另一个操作数被转换为long double类型,计算的结果也是long double类型。
②否则,如果其中一个数是double类型的,那么另一个操作数被转换为double类型,计算的结果也是double类型。
③否则,如果其中一个数是float 类型的,那么另一个操作数被转换为float 类型,计算的结果也是float类型。
④否则,如果一个数是unisigned类型,那么另一个操作数被转换为unisigner 类型,计算的结果也是unisigner类型。
⑤否则,如果其中一个数是long long int 类型,那么另一个操作数被转换为long long int 类型,计算的结果也是long long int 类型。
⑥否则,如果其中一个数是long int类型,那么另一个操作数被转换为long int类型,计算的结果也是long int类型。
7、否则,如果其中一个数是int类型,那么其他的如Bool、char、short int、bit field、枚举类型,则全部转换为int 类型,计算的结果也是int类型。
8、unsigned 一般比同级的整形 类型高两个级别。
【例2-11】数据类型转换。
#import <Foundation/Foundation.h>
int main (int argc, const char * argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
float PI=3.14159;
int s,r=5;
s=r*r*PI;
NSLog (@"s=%i",s) ;
[pool drain