-1

ここで Obj-C の初心者 :) 数値を変換するコードを書いています (主にドットの後のゼロを制御するため、5.000 -> 5 または 5.00)。それで、私はそれを機能させましたが、必要に応じて使用するクラスを作成したかったのです。作業コードは次のとおりです。

MainViewController.h

currentNumber = currentNumber *10 + (float)[sender tag];
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setMaximumFractionDigits:2];
[formatter setMinimumFractionDigits:0];
NSString *convertedNumber = [formatter stringFromNumber:[NSNumber numberWithFloat:currentNumber]];
calculatorScreen.text = [NSString stringWithFormat:@"%@",convertedNumber];

だから、私のためにそれを行い、convertedNumber を返すクラスを作成したいだけです。ここで私がやったこと:

FormatNumber.h

@interface FormatNumber: NSNumber
{
    NSString *nf;
}

- (void) getNumber:(float)n1;
- (NSString *) retNumber;
@end

FormatNumber.m

@implementation FormatNumber;
-(void) getNumber:(float)n1

{

        NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
        [formatter setMaximumFractionDigits:2];
        [formatter setMinimumFractionDigits:0];
        nf = [formatter stringFromNumber:[NSNumber numberWithFloat: n1]];

}

-(NSString *) retNumber; // As I cannot return something from void, I tried to do this way, don't know if it's the better
{
    return nf;
}
@end

MainViewController.h (クラスから値を渡して取得しようとしています)

currentNumber = currentNumber *10 + (float)[sender tag];
NSString *convertedNumber = 0;
FormatNumber *n1 = [[FormatNumber alloc] init];
[FormatNumber getNumber:currentNumber]; // No known class method for selector 'getNumber'
convertedNumber = [FormatNumber retNumber]; // No known class method for selector 'retNumber'
calculatorScreen.text = [NSString stringWithFormat:@"%@",convertedNumber];

また、このコードを書く簡単な方法があれば、いくつかの洞察をいただければ幸いです:)

4

1 に答える 1

0

C-way を使用して、%.2f (小数点以下 2 桁) および/または %.4f (小数点以下 4 桁) と %.0 を使用して実行できます。

このためのサンプルコードを次に示します。

float f=5.0000;
NSLog(@"res: %.2f", f); //5.00
NSLog(@"res: %.0f", f); //5
于 2013-01-12T05:53:14.253 に答える