带逗号小数分隔符的NSNumberFormatter [英] NSNumberFormatter with comma decimal separator
问题描述
我尝试将像12000.54这样的NSString转换为12.000,54。我写了一个NSNumberFormatter实例。
I tried to convert an NSString like "12000.54" into "12.000,54". I wrote an NSNumberFormatter instance.
NSNumberFormatter *formatter = [[[NSNumberFormatter alloc] init] autorelease];
[formatter setFormatterBehavior:NSNumberFormatterBehavior10_4];
[formatter setNumberStyle:NSNumberFormatterDecimalStyle];
[formatter setGroupingSeparator:@"."];
[formatter setDecimalSeparator:@","];
但是当我NSLog这个:
But when I NSLog this :
NSLog(@"%@",[formatter stringFromNumber:[formatter numberFromString:value]]);
它打印空值。如果我用一个点改变我的逗号它正常工作。我只是希望能够把我想要的东西放在我的分隔符字段(逗号,点,斜线等等)中,我有不同的输出:12 / 000,54 12.000.54 12,000,54例如。
It prints null value. If I change my comma with a point it's working correctly. I just would like to be able to put what I want for my separators field (comma, point, slash, etc ...) and I have different outputs : 12/000,54 12.000.54 12,000,54 for example.
你知道我怎么处理这个吗?
Do you know how I can handle this ?
推荐答案
所以这个问题是有效的:我自己回答:)
So the question is valid : I'm answering it myself :)
我从sqlite读取的十进制值(例如12000或12000.54)直接转换为NSString。
我必须在代码中的某个位置使用不同的分隔符。
I have a decimal value read from sqlite (e.g 12000 or 12000.54) directly transformed into NSString. I have to use different separator at some point in my code.
NSNumberFormatter *formatter = [[[NSNumberFormatter alloc] init] autorelease];
[formatter setFormatterBehavior:NSNumberFormatterBehavior10_4];
[formatter setNumberStyle:NSNumberFormatterDecimalStyle];
[formatter setGroupingSeparator:@""];
[formatter setDecimalSeparator:@"."];
// Decimal values read from any db are always written with no grouping separator and a comma for decimal.
NSNumber *numberFromString = [formatter numberFromString:@"12000.54"]];
[formatter setGroupingSeparator:@" "]; // Whatever you want here
[formatter setDecimalSeparator:@","]; // Whatever you want here
NSString *finalValue = [formatter stringFromNumber:numberFromString];
NSLog(@"%@",finalValue); // Print 12 000,54
问题解决了。
这篇关于带逗号小数分隔符的NSNumberFormatter的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!