2016-04-29 42 views
0
NSLog(@"Number: %f", [self calculateScore]); 

    - (CGFloat)calculateScore { 
     CGFloat score; 
     score = (_bestPossibleMove/_movesMade) * 5.0; 
     return score; 
    } 

所以我有2個實例變量_bestPossibleMove和_movesMade。前者從一開始就設爲6.0,而在比賽結束時後者爲16.0。當我到達NSLog消息時,調用[self calculateScore]會給我0.0000,當它給我一個略小於5.0且大於0.0的數字時。有什麼理由呢?NSLog float output 0.00000

+2

'_bestPossibleMove'和'_movesMade'的數據類型是什麼? – rmaddy

+0

你有沒有在NSLog之前放置一個斷點並檢查它們是否正確? – GregP

+0

@rmaddy是一些東西:如果變量是int類型,那麼除法將會是0或1(只有當_bestPossibleMove == _movesMade時),給你0或5的分數。 – fbrereto

回答

0

時_bestPossibleMove的值大於_movesMade的值,那麼/(等分)返回0大。所以它返回0.00000。