2

ではなく、それ自体Key1 として値を設定したい10.0010

            NSDictionary *dict = [NSDictionary dictionaryWithObjects:[NSArray arrayWithObjects:
                                 [NSDecimalNumber decimalNumberWithString:@"10.00"],
                                 [NSDecimalNumber decimalNumberWithString:@"10.19"],nil]
                                 forKeys:[NSArray arrayWithObjects:@"Key1",@"Key2",nil]];


            NSLog(@"Value For Key1 NSDecimalNumber %@",[dict valueForKey:@"Key1"]);
            NSLog(@"Value For Key1 float %f",[[dict valueForKey:@"Key1"] floatValue]);

            NSLog(@"Value For Key2 NSDecimalNumber %@",[dict valueForKey:@"Key2"]);
            NSLog(@"Value For Key2 float %f",[[dict valueForKey:@"Key2"] floatValue]);

これは、コンソールから取得したログです

    2013-05-16 12:43:23.316 SampleTest[6569:19d03] Value For Key1 NSDecimalNumber 10
    2013-05-16 12:43:23.771 SampleTest[6569:19d03] Value For Key1 float 10.000000
    2013-05-16 12:43:24.263 SampleTest[6569:19d03] Value For Key2 NSDecimalNumber 10.19
    2013-05-16 12:43:25.195 SampleTest[6569:19d03] Value For Key2 float 10.190000

誰でも私を助けることができますか?

前もって感謝します..

4

2 に答える 2

1

10 進数値の精度を持つ書式設定された文字列が必要な場合。使用できます

NSString *str = [NSString stringWithFormat:@"%.2f",[[dict valueForKey:@"Key1"] floatValue]];
NSLog(@"str - %@",str);

str には常に 2 桁の精度の文字列が含まれます。

これが役に立ち、簡単であることを願っています。

于 2013-05-16T08:34:54.043 に答える
0

私があなたを正しく理解していれば、あなたはNSDecimalNumberオブジェクトの出力形式を制御したいと考えています。
Cocoa はそのためのNSNumberFormmatterクラスを提供します。実際の値を変更せずに、数値の文字列表現をカスタマイズできます。

NSDecimalNumber高い精度を必要とする数値を処理する必要がある場合に適しています。たとえば、通貨を扱う場合。

に保存されている最初の値のフォーマットされたバージョンを出力するようにサンプルを変更しましたdict

NSDictionary* dict = [NSDictionary dictionaryWithObjects:[NSArray arrayWithObjects:
                                                          [NSDecimalNumber decimalNumberWithString:@"10.00"],
                                                          [NSDecimalNumber decimalNumberWithString:@"10.19"],nil]
                                                 forKeys:[NSArray arrayWithObjects:@"Key1",@"Key2",nil]];
NSNumberFormatter* formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:NSNumberFormatterDecimalStyle];
[formatter setAllowsFloats:YES];
[formatter setAlwaysShowsDecimalSeparator:YES];
[formatter setFormat:@"#,##0.00"];
NSString* formattedValue = [formatter stringFromNumber:[dict valueForKey:@"Key1"]];
NSLog(@"Value For Key1 %@",formattedValue);
于 2013-05-16T08:17:16.933 に答える