2011-07-25 17 views
13

ile ondalıkların önlenmesi NSNumberFormatter'ım NSNumber'den tam bir GBP (£) oluşturmak için kullanmaya çalıştığım bir NSNumberFormatter var. Denediğim büyüye bakılmaksızın iki ondalık basamak almaya devam ediyorum. Benim kodudur:NSNumberFormatter

NSNumberFormatter *fmtCurrency = [[[NSNumberFormatter alloc] init] autorelease]; 
    [fmtCurrency setNumberStyle: NSNumberFormatterCurrencyStyle]; 
    [fmtCurrency setGeneratesDecimalNumbers:FALSE]; 
    [fmtCurrency setCurrencyCode:@"GBP"]; 
    [fmtCurrency setCurrencySymbol:@"£"]; 
    txtTotal.text = [fmtCurrency stringFromNumber: result.Bill ]; // this is an NSNumber 
+5

bence ayarlayarak, ondalık part – sujith1406

cevap

35

SetMaximumFractionDigits'i sıfır ile çağırmak istediğinizi düşünüyorum.

NSNumberFormatter *fmtCurrency = [[[NSNumberFormatter alloc] init] autorelease]; 
[fmtCurrency setNumberStyle: NSNumberFormatterCurrencyStyle]; 
[fmtCurrency setGeneratesDecimalNumbers:NO]; 
[fmtCurrency setCurrencyCode:@"GBP"]; 
[fmtCurrency setCurrencySymbol:@"£"]; 

NSNumber* myNumber = [NSNumber numberWithFloat:12.34]; 
NSString* myString = [fmtCurrency stringFromNumber:myNumber]; 
NSLog(@"the number is %@", myString); 

[fmtCurrency setMaximumFractionDigits:0]; 
myString = [fmtCurrency stringFromNumber:myNumber]; 
NSLog(@"now it's %@", myString); 


2011-07-25 01:05:39.823 FormatterTest[841:707] the number is £12.34 
2011-07-25 01:05:39.824 FormatterTest[841:707] now it's £12 
8

Deneyebilirsin Sen kaldırmak olabilir @Praveen

+1

Teşekkür kaldıracaktır intValue alma minimumFractionDigits ve maximumFractionDigits sıfıra ihtiyacım var. – Echilon

0

önerdiği gibi NSNumber den intValue alın

[fmtCurrency setGeneratesDecimalNumbers:NO]; 
[fmtCurrency setMaximumFractionDigits:0]; 

veya

aşağıdaki tüm (oldukça yoğun olduğu) NSNumberFormatter ve sadece şunu yapın:

txtTotal.text = [NSString stringWithFormat:@"£%d", result.Bill.intValue]; 
-2

biçim dizesi iki ondalık sayılar ... ... adapte (i aramaya buydu)

  float distance = //distance with many decimals...; 

      NSNumberFormatter *numberFormatter = [[[NSNumberFormatter alloc] init] autorelease]; 
      [numberFormatter setMaximumFractionDigits:2]; 

      //new distance with two decimals 
      NSNumber* myNumber = [NSNumber numberWithFloat:distance]; 

iyi şanslar

İlgili konular