当前位置:  开发笔记 > IOS > 正文

将NSNumberFormatter的负格式从(xxx.xx)更改为-xxx.xx

如何解决《将NSNumberFormatter的负格式从(xxx.xx)更改为-xxx.xx》经验,为你挑选了1个好方法。

我想改变我的NSNumberformatter从显示带有括号的负数到将减号放在前面(或者无论本地标准是什么).

我想我可以用setNegativeFormat做到这一点:

但阅读Apple的哦,如此彻底的文档,我只是在摸不着头脑:


setNegativeFormat:

设置接收器用于显示负值的格式.

- (void)setNegativeFormat:(NSString *)aFormat

参数 aFormat一个字符串,指定负值的格式.

可用性适用 于iPhone OS 2.0及更高版本.

另请参阅 - negativeFormat

NSNumberFormatter.h中声明


我对aFormat有什么选择?!?来自Doc Docrs,这里的链接会杀了你吗?

编辑:这里有什么值得宣言:

NSNumberFormatter *currencyFormatter = [[NSNumberFormatter alloc] init];
[currencyFormatter setNumberStyle:NSNumberFormatterCurrencyStyle];

对我来说,保留本地化的货币符号和小数位是很重要的.因此,[currencyFormatter setNegativeFormat:@" - #,## 0.00"]可能无法正常工作,因为货币缺失,并且不能为所有货币假设2位小数.



1> Alex Rozansk..:

如果你看一下Cocoa数据格式编程指南中的"格式字符串"部分:

格式字符串使用Unicode技术标准#35中的格式模式(此参考版本为tr35-6; Mac OS X v10.4格式化程序使用版本tr35-4).

编辑:

如果要根据货币设置格式字符串,可以使用该¤字符,例如:

[formatter setFormat:@"¤#,##0.00"];

这将为当前本地化添加货币符号代替¤角色.

因此,将相同的概念应用于否定格式字符串:

[formatter setFormat:@"-¤#,##0.00"];

这也将应用货币符号代替¤当前本地化.


请注意,这会混淆任何本地化的货币格式.我最终使用正格式并将减号添加到其中:[formatter setNegativeFormat:[@" - "stringByAppendingString:[self.numberFormatter positiveFormat]]];
推荐阅读
贴进你的心聆听你的世界
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有