2010-01-10 51 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]