2011-09-20 19 views
1

我写刚刚在viewDidLoad中这几行字,并面临着意想不到的输出,iPhone编程中的意外浮动行为?

// Implement viewDidLoad to do additional setup after loading the view, typically from a nib. 
- (void)viewDidLoad { 
    [super viewDidLoad]; 


     float a = 15.264; 
    NSLog(@"FLoat is %f",a); 

     float b = 10/60; 
    NSLog(@"FLoat is %f",b); 
    } 

在第一浮子被显示被分配给一个正确的值,而B则显示0.0000,为什么呢?

+2

10是整数,60是整数,所以10/60是0.试试这个:10.0/60.0 – yehnan

回答

1

试试这个,

浮动B = 10.0/60.0,

bcox,只是10/60回报INT

2

您正在将一个整数除法的结果赋值给一个浮点数,也就是说,结果将在被赋值之前被截断。换句话说,10/60,这将是0.1666...产生结果0,然后分配给b。所以,b的值为零。

+0

它应该自动完成,以及thnx yar –

2

由于两个操作数都是整数,所以除法的结果是一个整数(0)。如果你希望你的部门的浮动结果,因为你所需要的操作数的至少一个是浮动,你应该使用

float b = 10.0/60.0 

甚至

float b = 10.0/60 

3

如果你想声明浮点数,你应该用这种格式声明它们: x.xf。 E.g float b = 10.0f/60.0f