2010-01-10 52 views
1

這真的很奇怪,希望一雙新鮮的眼睛可以幫助我弄清楚這一點。我碰巧在iPhone應用程序中使用此代碼,但我相信它使用簡單的C代碼,因此不確定這是否有所作爲。我有用戶輸入一個數字(在這種情況下,數量將是2.2)。然後我將這個數字除以0.2。混淆這個數學答案使用雙類型變量

在我的計算器我得到的11

答案但是,使用下面的代碼我得到的10回答:

NSString *userNameFour = txtUserName4.text; 
double numFour = [userNameFour intValue]; 

double t_psd = numFour/0.2; 

所以現在當我打印變量t_psd,我得到10.000000 。我在這裏做錯了什麼?

回答

2

intValue將字符串轉換爲int而不是double。你想代替doubleValue :)

+0

啊!你所有的回答都很棒!我真的很感謝你的幫助:) – HollerTrain 2010-01-10 18:49:58

+0

我希望我能標記所有這些正確的答案。 – HollerTrain 2010-01-10 18:50:50

+0

有趣的是,事實證明,答案越短越好。O.o – 2010-01-10 18:52:25

4

intValue位看起來很可疑...我的猜測是numFour最終是2.0而不是2.2。你確定你不是指doubleValue

試試這個:

NSString *userNameFour = txtUserName4.text; 
double numFour = [userNameFour doubleValue]; 

double t_psd = numFour/0.2; 

(這是一個問題,我有數字解析器剛剛停止當他們達到他們不希望一個角色。如果你在使用Java或.NET。與Integer.parseIntint.Parse錯誤本來是顯而易見的 - 一個異常會被拋出話說,「2.2」是不是整數的文本表示)

3

[userNameFour intValue]還給​​,這鑄就成(double) 2.0當你assig。至numFour。和2.0/0.2 = 10.0

您想使用[userNameFour doubleValue]