从我的textfield
我得到一个string
喜欢25,50
。
我想将其转换string
为float
. 但如果我使用myFloat = [mytextfiel.text floatValue];
我就会得到25.00
.
有没有办法得到一个像这样的浮点数25.50
?
从我的textfield
我得到一个string
喜欢25,50
。
我想将其转换string
为float
. 但如果我使用myFloat = [mytextfiel.text floatValue];
我就会得到25.00
.
有没有办法得到一个像这样的浮点数25.50
?
用句点替换 commna 是可行的,但您也可以使用 anNSNumberFormatter
并适当地设置您的语言环境(注意:未经测试的代码):
NSNumberFormatter * formatter = [[NSNumberFormatter alloc] init];
formatter.locale = [NSLocale currentLocale];
formatter.localizesFormat = YES;
float myFloat = [[formatter numberFromString:string] floatValue];
提取浮点数时只需用点替换逗号
myFloat = [[mytextfiel.text stringByReplacingOccurrencesOfString:@"," withString:@"."] floatValue];
或者,NSLocale
如果您无权访问,您可以使用 NSScanner 来确定要做什么并完成它NSNumberFormatter
:
1.000.000,00
-> 1000000,00@"%@.%@"
。这将解析几乎任何使用情况,即德语 1.500,50€,法语 1,500€50,英语 $1500.50 都将导致数字1500.5
浮点数必须遵循小数点格式(无论世界哪个地区),这意味着您的字符串的最终乘积必须具有 . 而不是逗号。我建议您在存储到数据库或处理值之前替换它。
尝试这个:
float floatNo = [[@"25.50" stringByReplacingOccurrencesOfString:@"," withString:@"."] floatValue];
NSLog(@"%f",floatNo);
输出/输出
25.500000