2

私のプロジェクトでは、実行して 5 桁の数字をインターフェイスのラベルに吐き出す関数があります。数値は double または float のいずれかですが、###+##.## のように表示したいと思います。

例番号 12345.67

123+45.67 のように表示

出力は常に小数を含む 5 桁の数値になります。データのフォーマット、特に数値のフォーマットを調査しましたが、このケースに固有のものは見つかりませんでした。ここで、番号を文字列に変更し、ラベルに割り当てます。どうぞよろしくお願いいたします。

NSString *outputNumber = [NSString stringWithFormat:@"%f",numberHere];

_stationing.text = outputNumber;
4

2 に答える 2

1

これを行うにはいくつかの方法があります。

NSMutableString *outputNumber = [[NSString stringWithFormat:@"%.2f", numberHere] mutableCopy];
[outputNumber insertString:@"+" atIndex:outputNumber.length - 5];

_stationing.text = outputNumber;

別:

int high = numberHere / 100;
float low = numberHere - (high * 100);
NSString *outputNumber = [NSString stringWithFormat:@"%d+%.2f", high, low];

数が 100 未満の場合、これらのアプローチはうまく機能しません。

于 2013-03-01T00:35:38.213 に答える
0

この助けを願っています

NSStirng *numberString = [NSString stringWithFormat:@"%.2f",numberHere];

NSString *firstPart = [numberString substringWithRange:NSMakeRange(0, 3)];
NSString *secondPart [numberString substringWithRange:NSMakeRange(3, 5)];

NSString *outputString = [NSString stringWithFormat:@"%@+%@", firstPart, secondPart];

番号の形式が永続的でない場合は、最初に長さを確認する必要があります。

于 2013-03-01T00:43:57.930 に答える