2012-09-25 29 views
-2

我有一個問題,我認爲是很容易解決,但我無法找到答案:數學目標C

long test = 8064269/8300000; 
NSLog(@"%lu",test); 

日誌是給我:

0 (should be something near to 1) 

我需要做更多的數學與此以後,然後,它是:

long test = 8064269/8300000 * 277; 
NSLog(@"%lu",test); 

日誌是給我:

4294967048 (should be something near to 277) 

我在做什麼錯?

+0

一。這已被問了很多次。二。爲什麼不在試圖製作最佳iPhone App Ever(TM)之前獲取C教程?三。 **這甚至不接近與Xcode有關。** – 2012-09-25 16:43:01

+0

1.我搜索了它。也許我正在尋找錯誤的條款。 2.我試圖一步一步做。也許,但我遇到了這個問題在Xcode –

+0

可能重複[爲什麼這個整數除法產量0?](http://stackoverflow.com/questions/8820865)/why-this-this-integer-division-yield-0) – andand

回答

2
8064269/8300000 

是一個整數除法,因爲所有的操作數都是整型。也就是說,它會截斷小數部分,只留下整數部分爲0.

但即使不是這種情況,您如何期望在整數中存儲小數(在long)?再次分配給整數也會截斷結果。首先,您需要

float test = 8064269.0/8300000.0; 
NSLog(@"%f", test); 
+0

謝謝我正在研究它 –