0

コード:

-(IBAction)addRounds{
NSString *addText = [NSString stringWithFormat:@"%@", self.roundsF.text];
NSString *totalText = [NSString stringWithFormat:@"%@", self.totalRoundsF.text];

int value = [totalText intValue] - [addText intValue];

NSNumber *val = [NSNumber numberWithInt:value];

NSString *final = [NSString stringWithFormat:@"%@", val.stringValue];

self.totalRoundsF.text = final;
}

上記のコードは完全に機能しますが、データをテキストフィールドに表示すると、次のように表示されます:-10数字の 10 は正しいです-。どんな助けでも大歓迎です、どうもありがとうございました!

4

3 に答える 3

6

負の値はまったく必要ありませんか?その場合はabs絶対値を使用してください。これにより、常に正の値が得られます。

変数のタイプに応じて、abs(int)labs(long)llabs(long long)imaxabs(intmax_t)fabsf(float)fabs(double)または のいずれかfabsl(long double)です。

これらの関数は C ライブラリの一部であり、Objective-C ライブラリにも存在します。それらを使用するには、インポートmath.hする必要がある場合があります。

あなたの場合、それはabs(val); //will give +10

于 2012-12-12T03:30:27.507 に答える
2

NSNumber *val = [NSNumber numberWithInt:value];これをに変更NSNumber *val = [NSNumber numberWithInt:abs(value)];

于 2012-12-12T03:34:33.150 に答える
1
-(IBAction)addRounds{
    self.totalRoundsF.text = [NSString stringWithFormat:@"%d", [self.roundsF.text intValue] - [self.totalRoundsF.text intValue]];
}
于 2012-12-12T04:01:23.880 に答える