实现十进制而不是分数,计算器Xcode应用程序

时间:2012-04-25 02:01:06

标签: iphone objective-c xcode interface decimal-point

我到处搜寻,并没有发现类似于我的情况.Xcode / Objective C新手,我正在整理一个双重目的(分数/小数)计算器应用程序。我已经在分数上发现了一些好东西,并让它们正确计算。然而,小数是一个不同的故事。我可以用它来表达:

    -(IBAction) pressDecimal
    {
     NSRange range = [display.text rangeOfString:@"."];
                 if ( range.location == NSNotFound ) {
                 display.text = [display.text stringByAppendingString:@"."];
    }

或者这个:

    -(IBAction) pressDecimal
 {
   [displayString appendString: @"."];
   display.text = displayString;
 }

后者效果很好,可以在计算器上显示它。我尝试将其作为一个插槽,一个双重读取,我似乎无法正确读取它...这是我如何得到数字:

     - (void) workNums: (int) nums

{

currentNumber = currentNumber * 10 + nums;
[displayString appendString:
 [NSString stringWithFormat: @"%i", nums]];
display.text = displayString;

}

    //uses tags from attribute inspector (decimal tagged 10)
  -(IBAction)pressNum:(UIButton *)sendIT
{
   int nums = sendIT.tag;
   [self workNums: nums];
}

我到处寻找,尝试从花车换成双打(当我和它们一起玩时,我可以让它显示0.00')这里也是我将ANSWER转换为DECIMAL的方法。太:

  - (double) convertToNum
 {
if (denominator != 0)
    return (double) numerator / denominator;
else 
    return NAN;

再次,干净地陈述......我怎样才能让Objective C看到应用程序中输入的小数,并将答案正确显示为十进制..我搞砸了因为我开始这个主要是一个分数计算器?感谢一位从BASIC搬到Objective C的菜鸟

编辑4/27/12 * **  (Stack的新功能 - 但请在下面阅读我的评论..我想找出为什么我不能在我的程序中读取小数...我尝试从int(我知道不会工作)和双打并且浮动,但是当我以双打运行时,我得到的是用户输入的0.00:

     -(IBAction)pressNum:(UIButton *)sendIT
     {
         int nums = sendIT.tag;
         [self workNums: nums];
     }

        - (void) workNums: (int) nums
     {

     currentNumber = currentNumber * 10 + nums;
     [displayString appendString:
     [NSString stringWithFormat: @"%i", nums]];
     display.text = displayString;
     }

所以目标是能够计算用户输入的十进制数...对if / else情况的任何建议,因为这些数字在累加器中构建/和currentNumber的double,并且稍后变为分子/分母下线...(这可能是我的问题,但它应该不难,但我很难,使用BOOL或其他东西说,嘿..这不是一个分数,它是一个小数 - 所以我们这样做 - 请帮助!!坚持!

1 个答案:

答案 0 :(得分:0)

我可能认为这比现在简单得多,但是:如果你在@"3.14"中已经有displayString之类的字符串,那么你可以将它直接转换为双精度数字:

double doubleValue = [displayString doubleValue];

这不足以获得双值并执行计算吗?