Ios NSString floatValue似乎操作不正确

Ios NSString floatValue似乎操作不正确,ios,Ios,我在xib文件中有一个文本字段。在.m文件中的方法中,我可以打印文本字段的内容,但无法将这些内容转换为浮点值。文本字段的格式为逗号,如123456789所示。下面是代码片段,其中datacellR2C2是文本字段 float originalValue2 = originalValue2 = [datacellR2C2.text floatValue]; NSLog(@"datacellR2C2 as text --> %@ <---\n",datacellR2C2.text);

我在xib文件中有一个文本字段。在.m文件中的方法中,我可以打印文本字段的内容,但无法将这些内容转换为浮点值。文本字段的格式为逗号,如123456789所示。下面是代码片段,其中datacellR2C2是文本字段

float originalValue2 = originalValue2 = [datacellR2C2.text  floatValue];
NSLog(@"datacellR2C2 as text --> %@ <---\n",datacellR2C2.text);  // this correctly shows the value in datacellR2C2
NSLog(@"originalValue2 = %f  <--\n", originalValue2);  // this incorrectly returns the value 1.0 
float originalValue2=originalValue2=[datacellR2C2.text floatValue];

NSLog(@“datacellR2C2作为文本-->%@在
-floatValue
的声明中显示注释:

/*以下方便方法都跳过初始空格字符 (空白)并忽略尾随字符。可以使用NSScanner 对于更“精确”的数字解析。 */

因此,逗号会导致截断,因为它们是尾随字符。即使是您提供的字符串(123456789)也只能打印123.000,因为这就是所有的
-floatValue
所看到的

//test
NSString *string = @"123,456,789";
float originalValue2 = [string  floatValue];
NSLog(@"datacellR2C2 as text --> %@ <---\n",string);  // this correctly shows the value in datacellR2C2
NSLog(@"originalValue2 = %f  <--\n", originalValue2);

//log
2012-07-07 22:16:15.913 [5709:19d03] datacellR2C2 as text --> 123,456,789 <---
2012-07-07 22:16:15.916 [5709:19d03] originalValue2 = 123.000000  <--

顺便说一句,浮点数是将字符串四舍五入为偶数,请改用双精度。

为什么用浮点数originalValue2=originalValue2=…;而不是originalValue2=…;这是我发布的文本中的一个打字错误。我仔细检查了,它不在原件中。对于可能造成的任何混淆,我深表歉意。原件is…float originalValue2=[datacellR2C2.text floatValue];
//test
NSString *string = @"123,456,789";
NSString *cleanString = [string stringByReplacingOccurrencesOfString:@"," withString:@""];
float originalValue2 = [cleanString  floatValue];
NSLog(@"datacellR2C2 as text --> %@ <---\n",cleanString);  // this correctly shows the value in datacellR2C2
NSLog(@"originalValue2 = %f  <--\n", originalValue2);

//log
2012-07-07 22:20:20.737 [5887:19d03] datacellR2C2 as text --> 123456789 <---
2012-07-07 22:20:20.739 [5887:19d03] originalValue2 = 123456792.000000  <--