我有一个带有三个 View Controller 的应用程序。首先是具有三个 UITextField 的 UIViewController,用户在其中放置了一些数字。这些数字作为字符串属性存储到我的 CoreData 实体中。
其次是 UITableView,我将 CoreData 中存储的数据显示为新单元格。
第三是详细的 UIViewController,我向用户展示了他之前插入的所有数字。
问题是当我在 textField 小数点上设置时,用户有数字和逗号,但我的函数需要带点的数字来进行 double 计算。
使用逗号我无法将数学函数设为 [.....] * [...] = ....
因为它不起作用。
知道我该如何解决吗? 我可以简单地将逗号更改为点吗?
我有这个代码:
NSNumberFormatter*nf = [[NSNumberFormatter alloc]init];
[nf setNumberStyle:NSNumberFormatterDecimalStyle];
double result = [myString doubleValue] * [myOtherString doubleValue];
您希望十进制小键盘根据用户的区域设置有逗号或句点(点)。这样用户就可以按照他们习惯的方式输入值。为了让您使用 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;
关于ios - 小数点不能用逗号进行数学运算。需要点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19068960/
欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) | Powered by Discuz! X3.4 |