0

私はどこでも精査しましたが、私のような状況は見つかりませんでした。分数に良いものを見つけたので、正しく計算してもらいました。ただし、小数は別の話です。これで表示できます:

    -(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];
}

私はどこでも見て、floatからdoubleに変更しようとしました(私がそれらを使って遊ぶと0.00を表示することができます)また、FRACTIONであるANSWERをDECIMALに変換する方法もここにあります..

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

繰り返しますが、明確に述べます...どうすればObjective Cにアプリに入力された小数を表示させ、答えを適切に小数として表示させることができますか. BASIC から Objective C に移行した初心者からの感謝

EDIT 4/27/12 * ** (Stack の新機能 - ただし、以下のコメントをお読みください。プログラムに 10 進数を読み込めない理由を探しています... int から変更しようとしました (これは私は動作しないことを知っています) と double と float ですが、これをすべて double として実行すると、ユーザー入力で 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;
     }

したがって、目標は、ユーザーが入力した10進数を計算できるようにすることです...これらの数値がアキュムレータ/およびcurrentNumberの2倍に蓄積され、後で分子/分母に変換されるため、if/elseの状況に関する提案..(これはおそらく私の問題ですが、難しいことではないはずですが、BOOLなどを使用して何かを言うのを難しくしています..これは分数ではなく、小数です-そうしましょうこれをしてください - 助けてください!! GOING NUTS!

4

1 に答える 1

0

これは実際よりもはるかに単純だと思うかもしれませんが、次のような文字列が既にある場合は、@"3.14"それdisplayStringを直接 double に変換できます。

double doubleValue = [displayString doubleValue];

double 値を取得して計算を実行するには、それで十分ではないでしょうか?

于 2012-04-25T02:09:10.140 に答える