从我的textfield
我得string
25,50
。
我想将此string
转换为float
。但是,如果我使用myFloat = [mytextfiel.text floatValue];
,我只会获得25.00
。
是否有方法获得像25.50
一样的浮动?
答案 0 :(得分:4)
用句点替换commna有效,但您也可以使用NSNumberFormatter
并适当设置您的语言环境(注意:未经测试的代码):
NSNumberFormatter * formatter = [[NSNumberFormatter alloc] init];
formatter.locale = [NSLocale currentLocale];
formatter.localizesFormat = YES;
float myFloat = [[formatter numberFromString:string] floatValue];
答案 1 :(得分:2)
在解压缩浮动
时,只需用点替换逗号myFloat = [[mytextfiel.text stringByReplacingOccurrencesOfString:@"," withString:@"."] floatValue];
答案 2 :(得分:1)
或者,如果您无法访问NSLocale
,则可以使用NSNumberFormatter
确定要执行的操作并使用NSScanner完成此操作:
1.000.000,00
- > 1000000,00 @"%@.%@"
的字符串。这几乎可以解析任何使用案例,即德语为1.500,50€,法语为1,500€50,英语为1500.50美元,均为1500.5
答案 3 :(得分:0)
浮点数必须遵循小数点格式(无论世界的哪个区域),这意味着你的字符串的最终产品必须有一个。而不是逗号。我建议你在存储到数据库之前或处理值之前替换它。
答案 4 :(得分:0)
试试这个:
float floatNo = [[@"25.50" stringByReplacingOccurrencesOfString:@"," withString:@"."] floatValue];
NSLog(@"%f",floatNo);
<强> O / P 强>
25.500000