【问题标题】:NSNumberFormatter Text Field Thousand SeparatorNSNumberFormatter 文本字段千位分隔符
【发布时间】:2012-03-09 18:24:13
【问题描述】:

我正在编写信用计算器,我希望在用户输入数字时使用(本地)千位分隔符格式化数字。

例如,100000 应变为 100.000(本地)。

在我的示例中如何做到这一点?

NSNumberFormatter *nf = [[[NSNumberFormatter alloc] init] autorelease];
[nf setNumberStyle: NSNumberFormatterDecimalStyle];
[nf setRoundingMode: NSNumberFormatterRoundHalfUp];
[nf setMaximumFractionDigits: 2];

double loanAmount = [[nf numberFromString: tbxLoanAmount.text] floatValue];
double intRate = [[nf numberFromString: annualInterestRate.text] floatValue];
double NRate = [[nf numberFromString: NInterestRate.text] floatValue];
double years = [[nf numberFromString: noOfYears.text] floatValue];
double residual = [[nf numberFromString: residualvalue.text] floatValue];

非常感谢!

D

【问题讨论】:

  • 你不是说100.000 应该变成100000,而不是相反吗?另外,NSNumberFormatter 默认没有当前的语言环境格式吗?不是这样吗?
  • 我认为100000应该变成100.000。
  • 如果千位分隔符是.,那么如果你的字符串是100.000,那么你得到的数字应该是十万吧?
  • 是的,带有千位分隔符 (.) Euro 或 (,) US。
  • 是的,是十万。

标签: objective-c nsnumberformatter


【解决方案1】:

您可以尝试为您的数字格式化程序设置以下内容:

[nf setGroupingSize:3];
[nf setCurrencyGroupingSeparator:@"."];

// you should create a string from number
NSNumber n = [NSNumber numberWithLong: 100000];

NSString str = [nf stringFromNumber: n];

NSLog(@"My number: %@", str);

【讨论】:

  • 不,又是同样的事情!我之前试过!我不知道我错在哪里!
  • 我刚刚发现您没有从您的号码创建字符串。仅当您从数字创建字符串时,才会使用货币分组等格式设置。还是我完全误解了你的情况?
  • 另外,不要忘记 nf.usesGroupingSeparator = YES;
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多