20

NSNUmberFormatter を使用して、特定の NSNumber を通貨に変換できます。その showign $ 記号、「、」などで区切られた数字。
しかし、セントを表示したくありません。
たとえば、$537,335.32を表示している場合、
$536,335 を表示したいだけで
、次のコードを書いています。

NSNumberFormatter *currencyFormatter = [[[NSNumberFormatter alloc] init] autorelease];
[currencyFormatter setNumberStyle:NSNumberFormatterCurrencyStyle];

NSDictionary* tempDict = [self.displayDict objectForKey:kConservative];
conservativeHP.text = [currencyFormatter stringFromNumber:[tempDict objectForKey:kHomePrice]];

結果に「小数」が含まれないように、NSNumberFormatterを作成するか、何かを行うにはどうすればよいですか

4

7 に答える 7

53

maximumFractionDigits 設定を使用します。

NSNumberFormatter *currencyFormatter = [[[NSNumberFormatter alloc] init] autorelease];
[currencyFormatter setNumberStyle:NSNumberFormatterCurrencyStyle];
[currencyFormatter setMaximumFractionDigits:2];

それに応じて値を調整できます。2 を使用すると、結果が 2 桁に制限されます。この質問では、値 0 で十分です。

于 2012-07-23T15:07:01.350 に答える
0

表示するときは、これを行うだけです

Mylabel.text = @"%.2f", mynumberwithcents;

これは、mynumberwithcents変数が Float または Double の場合にのみ機能します...

于 2014-07-20T22:26:35.230 に答える
0
In case of using category:

    .h
        #import <Foundation/Foundation.h>

        @interface NSString (Price)

        + (NSString *)updateStringToPriceWithValue:(NSNumber *)value;

        @end
    .m
        #import "NSString+Price.h"
        @implementation NSString (Price)

        + (NSString *)updateStringToPriceWithValue:(NSNumber *)value
        {
            NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
            [formatter setNumberStyle:NSNumberFormatterCurrencyStyle];

            NSInteger minimumFractionDigits = [formatter minimumFractionDigits];
            NSInteger maximumFractionDigits = [formatter maximumFractionDigits];

            NSString *formatted = [formatter stringFromNumber:value];
            NSLog(@"%@", formatted);

            [formatter setMinimumFractionDigits:minimumFractionDigits];
            [formatter setMaximumFractionDigits:maximumFractionDigits];



            return formatted;

        }
于 2017-09-24T21:39:59.863 に答える
-3

数値をフォーマッタに追加する前に、次のように int に変更して小数を回避します。

float myValue = 543.32;

NSNumber myNumber = [NSNumber numberWithInt: (int)myValue)];

小数部分を取り除きます!

于 2012-03-08T09:32:10.637 に答える