带逗号小数分隔符的NSNumberFormatter [英] NSNumberFormatter with comma decimal separator

查看:459
本文介绍了带逗号小数分隔符的NSNumberFormatter的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我尝试将像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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆