2

我有三个视图控制器的应用程序。首先是具有三个 UITextField 的 UIViewController,用户在其中放置了一些数字。这些数字作为字符串属性存储到我的 CoreData 实体中。

第二个是 UITableView,我将 CoreData 中存储的数据显示为新单元格。第三是详细的 UIViewController,我向用户展示了他之前插入的所有数字。问题是当我在 textField 小数点上设置时,用户有数字和逗号,但我的函数需要带点的数字来进行双精度计算。用逗号我不能做数学函数,[.....] * [...] = ....因为它不起作用。

知道我怎么能弄清楚吗?我可以简单地将逗号更改为点吗?

我有这个代码:

 NSNumberFormatter*nf = [[NSNumberFormatter alloc]init];
[nf setNumberStyle:NSNumberFormatterDecimalStyle];

double result = [myString doubleValue] * [myOtherString doubleValue];
4

2 回答 2

6

您希望十进制键盘根据用户的区域设置有逗号或句点(点)。这样用户就可以按照他们习惯的方式输入值。为了让您使用 vales 进行数学运算,您需要使用 aNSNumberFormatter将输入的字符串转换为double值。一旦你这样做了,你的数学公式就会起作用。如果字符串是由用户输入的,切勿使用doubleValueorfloatValue将 an 转换NSString为 a 。始终使用来正确处理用户的语言环境。doublefloatNSNumberFormatter

根据添加到问题的代码进行更新。

您不使用数字格式化程序。你正在做我说不要做的事。将您的代码更改为:

double firstValue = [[nf numberFromString:myString] doubleValue];
double secondValue = [[nf numberFromString:myOtherString] doubleValue];
double result = firstValue * secondValue;
于 2013-09-28T16:18:56.210 回答
-3

解决方法很简单:

  1. Go to Settings > General > International > Regional Format
  2. Now select "United States"

现在运行您的应用程序并在十进制键盘中看到点(。)而不是逗号(,)。

于 2015-06-02T10:10:43.750 回答