Ios 使用NSNumberFormatter防止小数
我有一个Ios 使用NSNumberFormatter防止小数,ios,string-formatting,nsnumberformatter,Ios,String Formatting,Nsnumberformatter,我有一个NSNumberFormatter,我正试图使用它从NSNumber生成一个整数GBP(£)。不管我用哪种咒语,我总是能得到小数点后两位。我的代码是: NSNumberFormatter *fmtCurrency = [[[NSNumberFormatter alloc] init] autorelease]; [fmtCurrency setNumberStyle: NSNumberFormatterCurrencyStyle]; [fmtCurrency setGeneratesDe
NSNumberFormatter
,我正试图使用它从NSNumber
生成一个整数GBP(£)。不管我用哪种咒语,我总是能得到小数点后两位。我的代码是:
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
您需要从中提取。我想您需要使用零调用setMaximumFractionDigits
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
你可以试试下面的方法
[fmtCurrency setGeneratesDecimalNumbers:NO];
[fmtCurrency setMaximumFractionDigits:0];
或
按照@Praveen的建议,从
NSNumber
中获取intValue
,您可以删除所有NSNumberFormatter(非常密集),只需执行以下操作:
txtTotal.text = [NSString stringWithFormat:@"£%d", result.Bill.intValue];
将字符串格式设置为两位小数。。。(是我正在寻找的)改编
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];
祝你好运
let formatter = NumberFormatter()
formatter.maximumFractionDigits = 0
我认为获取intvalue将删除小数部分谢谢,通过将minimumFractionDigits和maximumFractionDigits设置为零,我得到了我需要的。