我有三个视图控制器的应用程序。首先是带有三个UITextField的UIViewController,用户放置一些数字。这些数字作为String属性存储在我的CoreData实体中。
其次是UITableView,我将来自CoreData的存储数据显示为新单元格。
第三个是详细的UIViewController,其中我向用户显示他以前插入的所有数字。
问题是当我设置textField小数位时,用户有数字和逗号,但我的函数需要带有点的数字进行双精度计算。
使用逗号,我无法将数学函数设为[.....] * [...] = ....
,因为它不起作用。
知道如何解决这个问题吗? 我可以简单地将逗号更改为点吗?
我有这段代码:
NSNumberFormatter*nf = [[NSNumberFormatter alloc]init];
[nf setNumberStyle:NSNumberFormatterDecimalStyle];
double result = [myString doubleValue] * [myOtherString doubleValue];
答案 0 :(得分:6)
您希望小数点小键盘具有基于用户区域设置的逗号或句点(点)。这样用户就可以按照习惯输入值。为了使用vales进行数学运算,您需要使用NSNumberFormatter
将输入的字符串转换为double
值。一旦你这样做,你的数学公式将起作用。如果用户输入字符串,请勿使用doubleValue
或floatValue
将NSString
转换为double
或float
。始终使用NSNumberFormatter
来正确处理用户的区域设置。
根据添加到问题的代码进行更新。
您不使用数字格式化程序。你正在做我刚才所说的事情。将您的代码更改为:
double firstValue = [[nf numberFromString:myString] doubleValue];
double secondValue = [[nf numberFromString:myOtherString] doubleValue];
double result = firstValue * secondValue;
答案 1 :(得分:-2)
解决方案非常简单:
1. Go to Settings > General > International > Regional Format
2. Now select "United States"
现在运行你的应用程序并在十进制键盘键盘中看到点(。)而不是逗号(,)。