2011-09-20 15 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