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

时间:2013-09-28 16:16:27

标签: ios cocoa-touch uitextfield keypad

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

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

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

我有这段代码:

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

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

2 个答案:

答案 0 :(得分:6)

您希望小数点小键盘具有基于用户区域设置的逗号或句点(点)。这样用户就可以按照习惯输入值。为了使用vales进行数学运算,您需要使用NSNumberFormatter将输入的字符串转换为double值。一旦你这样做,你的数学公式将起作用。如果用户输入字符串,请勿使用doubleValuefloatValueNSString转换为doublefloat。始终使用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"

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