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

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

知道如何解决吗?
我可以简单地将逗号更改为点吗?

我有这个代码:

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

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

最佳答案

您希望十进制键盘根据用户的区域设置具有逗号或句点(点)。这样,用户可以按照自己的习惯输入值。为了让您对值进行数学运算,您需要使用NSNumberFormatter将输入的字符串转换为double值。完成此操作后,您的数学公式将起作用。如果用户输入了字符串,则切勿使用doubleValuefloatValueNSString转换为doublefloat。始终使用NSNumberFormatter正确处理用户的语言环境。

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

您不使用数字格式器。你在做我所说的不做的事情。将您的代码更改为:

double firstValue = [[nf numberFromString:myString] doubleValue];
double secondValue = [[nf numberFromString:myOtherString] doubleValue];
double result = firstValue * secondValue;

关于ios - 小数垫不能用逗号进行数学运算。需要点,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19068960/

10-12 04:24
查看更多