小数位垫不能用逗号做数学运算.需要点

May*_*323 2 cocoa-touch uitextfield keypad ios

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

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

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

我有这个代码:

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

double result = [myString doubleValue] * [myOtherString doubleValue];
Run Code Online (Sandbox Code Playgroud)

rma*_*ddy 6

您希望小数键盘具有逗号或基于用户区域设置的句点(点).这样用户就可以按照习惯输入值.为了使用vales进行数学运算,您需要使用a NSNumberFormatter将输入的字符串转换为double值.一旦你这样做,你的数学公式将起作用.切勿使用doubleValuefloatValue转换NSStringdouble或者float如果用户输入了字符串.始终使用NSNumberFormatter正确处理用户的区域设置.

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

您不使用数字格式化程序.你正在做我刚才所说的事情.将您的代码更改为:

double firstValue = [[nf numberFromString:myString] doubleValue];
double secondValue = [[nf numberFromString:myOtherString] doubleValue];
double result = firstValue * secondValue;
Run Code Online (Sandbox Code Playgroud)