2012-03-08 8 views
13

特定のNSNumberをNSNUmberFormatterを使用して通貨に変換できます。そのshowignの$記号、 "、"で区切られた数字など
しかし、私はセントを表示したくありません。例えば
その表示私はちょうど私が次のコードを書いている$ 536335
表示したい$ 537,335.32
:私はNSNumberFormatterを作成したり、結果が「小数を持っていないような何かを行う必要がありますどのようにiOS - NSNumberFormatterを使用して通貨を表示しない通貨を表示します。

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

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

をフォーマッタに番号を追加する前に、「

答えて

0

、小数点以下を避けるために、int型に変更し、このような何か:

float myValue = 543.32; 

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

あなたは小数部分を取り除くでしょう!

+0

NSNumberを作成している場合は、これは良い解決策です。しかし、問題は、私が変更できないサーバーからデータを取得することです。表示中のみ、セントを切り捨てたい – Satyam

+1

元の値を変更する必要はありません。数値をint変数にコピーするだけです。問題は表示されません。 –

33

は設定maximumFractionDigits以下を使用します。

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

あなたがそれに応じて値を調整することができます。 2を使用すると結果は2桁に制限されますが、この質問では0を指定する必要があります。

+1

この回答の脇に、[currencyFormatter setMinimumFractionDigits:0]を追加してください。ゼロに等しい場合、小数点以下を切り捨てる数値を取得します。私の場合、私は$ 126k、または$ 1.25Mを示したいと思います。これで私はそれを得ることができます。 –

0

あなたはmynumberwithcents変数がfloatまたはdoubleのいずれかであるならば、それはちょうどこの

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

これだけ作品をやる表示するために行く...

-1

スウィフト3:

currencyFormatter.maximumFractionDigits = 0 
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; 

     } 
1

swift 3

0maximumFractionDigitsを設定
let formatter = NumberFormatter() 
    formatter.numberStyle = .currency 
    //formatter.locale = NSLocale.current 
    formatter.currencySymbol = "" //In case you do not want any currency symbols 
    formatter.maximumFractionDigits = 0 

は、任意の10進数または分数の値は表示されません。

関連する問題