-2

2 つの NSString を一緒に追加して、ラベルに値を生成しようとしている単純なアプリがあります。

NSString *one= @"0.00";
NSString *two= @"20.15";

NSString *total = [[NSString alloc]  initWithFormat:@"%d",[one integerValue] + [two integerValue]];

label.text = [NSString stringWithFormat:@"%@",total];

これは、小数点以下の数値を考慮に入れたい場合を除いて、正常に機能します。出力は 20.15 ではなく 20 になります。

4

3 に答える 3

2

floatValueNSString代わりに を見つけますintValue。整数は整数なので、小数点以下は無視されます。

NSString *one= @"0.00";
NSString *two= @"20.15";

NSString *total = [NSString stringWithFormat:@"%f", [one floatValue] + [two floatValue]];

label.text = total;
于 2013-01-08T02:53:45.943 に答える
2

整数の代わりに浮動小数点数を使用する

NSString *total = [[NSString alloc]  initWithFormat:@"%f",[one floatValue] + [two floatValue]];

小数点以下 2 桁を指定する場合は%f%.2f

[two integerValue]あなたの例では評価されることに注意20してください。その時点から小数精度が失われます。

于 2013-01-08T02:52:02.343 に答える
1

整数には小数がありません。

試す:

NSString *total = [NSString stringWithFormat:@"%f", [one floatValue] + [two floatValue]];
于 2013-01-08T02:53:28.793 に答える