无法将字符串值转换为float

时间:2011-09-07 04:46:29

标签: iphone objective-c

当我将字符串值转换为float时,它需要o.oooo。这是代码。

  NSString *amt=txtTotalBill.text;
NSLog(@"%@",amt);
float amount = [amt floatValue]

NSLog(@"%f",amount);

NSString *insertData=[NSString stringWithFormat:@"insert into tbl_Bills(Amount,Note,Due_On) values ('%f')",amount];
[database executeQuery:insertData];
NSLog(@"inert query: %@",insertData);
NSLog(@"value inserted");
[table reloadData]; 
[database close];

每次获取金额为0.0000。在此代码中,amt值是正确的,但该字符串值不会转换为float。

5 个答案:

答案 0 :(得分:2)

我假设您已经确保没有非数字字符可以进入要转换的NSString。

您能否告诉我们NSLog为字符串输出的内容是什么?

您是否也可以尝试为浮点数设置输出格式?例如'%3.3f'将在小数点前后显示3个数字。

答案 1 :(得分:2)

刚尝试了一些代码块,对我来说效果很好。错误可能在NSString本身。也许它没有传递一个完全数字的数字。尝试使用CGFloat,虽然这不应该改变任何东西。

答案 2 :(得分:1)

如果文本是浮点数格式,请检查txtTotalBill.text。

如果text不是float number格式,[NSString floatValue]将返回0.00000

答案 3 :(得分:0)

试试这个,我想这会奏效。

float amount = [txtTotalBill.text floatValue];

答案 4 :(得分:0)

这很完美

NSString *amt = txtTotalBill.text;
float amount;
amount = [amt floatValue];