Tag: nsnumberformatter

如何避免在NSNumberFormatter四舍五入

我想要有一个数字string,最大精度为2位小数,而其余小数只是修剪掉而不是四舍五入。 例如: I have: 123456.9964 I want: 123456.99 -> Just want to trim rest of the decimal places 我所尝试的是: NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init]; [numberFormatter setNumberStyle: NSNumberFormatterDecimalStyle]; [numberFormatter setMaximumFractionDigits:2]; NSString *numberAsString = [numberFormatter stringFromNumber:[NSNumber numberWithFloat: 123456.9964]]; NSLog(@"%@", numberAsString); 舍入模式没有设置为“无”。 我还可以做些什么来保持十进制样式格式与修整后的十进制数字? 任何帮助将不胜感激。 谢谢。

iOS拨号协助自动将本地号码转换为美国号码

在我的应用程序中允许用户使用这一行代码呼叫客户支持 [[UIApplication sharedApplication] openURL:[NSURL URLWithString:[NSString stringWithFormat:@"telprompt:18002096006"]]]; 但iOS会将此格式设置为如下所示的美国号码,并拨打美国电话 +1(800)209-6006 但是这是印度的免费电话号码。 …. 我已经看到从ios用户讨论相同的问题 ,并解决了解决办法是禁用设置>电话“拨号助手” 问题是,在iOS 7中没有这样的选项,即使用户使用的是iOS6,我们也不能要求用户在他们的设置中改变它,当他们正在紧急呼叫。 是否有任何解决方法为开发人员本地化电话号码,并防止由iOS完成自动格式化

NSNumberFormatter的maximumFractionDigits和maximumSignificantDigits错误

这是一个错误,当在iOS 8上NSNumberForamtter一起使用maximumFractionDigits和maximumSignificantDigits ? NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init]; formatter.maximumFractionDigits = 2; formatter.maximumSignificantDigits = 3; NSLog(@"%@", [formatter stringFromNumber:@(0.3333)]); // output 0.333 expected 0.33 它工作正常,如果我只使用maximumFractionDigits NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init]; formatter.maximumFractionDigits = 2; NSLog(@"%@", [formatter stringFromNumber:@(0.3333)]); // output expected .33

用NSNumberFormatter防止小数

我有一个NSNumberFormatter,我试图用来从一个NSNumber生成一个GBP(£)的整数。 无论我尝试哪种咒语,我都会得到两位小数。 我的代码是: NSNumberFormatter *fmtCurrency = [[[NSNumberFormatter alloc] init] autorelease]; [fmtCurrency setNumberStyle: NSNumberFormatterCurrencyStyle]; [fmtCurrency setGeneratesDecimalNumbers:FALSE]; [fmtCurrency setCurrencyCode:@"GBP"]; [fmtCurrency setCurrencySymbol:@"£"]; txtTotal.text = [fmtCurrency stringFromNumber: result.Bill ]; // this is an NSNumber

NSNumberFormatter在设备上返回nil,而不是在模拟器上

我使用NSNumberFormatter将用户input转换为NSNumber(十进制数),我使用ARC。 NSNumberFormatter *f = [[NSNumberFormatter alloc] init]; [f setNumberStyle:NSNumberFormatterDecimalStyle]; [f setMaximumFractionDigits:1]; _myNumber = [f numberFromString:myTextField.text]; 有时这会导致_myNumber nil 。 即使当我绝对确定用户input是一个正确的十进制数(我在debugging过程中检查)。 为了完整性, _myNumber是ViewController的综合属性。 这只发生在设备上运行的应用程序,而不是当我在模拟器中运行。 正在使用的键盘是“Decimal Pad”在代码的不同部分,在不同的ViewController中,代码确实起作用。 我现在有一个解决方法,我已经在上面的代码添加下面: if (!myNumber){ myNumber = [NSNumber numberWithFloat: myTextField.text.floatValue]; } 有人知道为什么NSNumberFormatter可以返回零,即使调用[NSNumber numberWithFloat: myTextField.text.floatValue]作品?

将NSString转换为货币 – 完整的故事

经过了一天的这个问题,我会看看我能否得到一些帮助。 这个问题之前或多或less都有问题,但似乎没有人给出完整的答案,所以希望我们现在能够得到答案。 使用UILabel和UITextView(带数字键盘)我想实现一种类似ATM的行为,让用户只需键入数字,并将其格式化为标签中的货币。 这个想法基本上概述在这里: 用小数点input数值的最佳方法是什么? 唯一的问题是,它从来没有明确说过我们如何可以在文本字段中使用像123这样的整数,并在标签中显示为$ 1.23或123¥等。任何人都有代码这样做?

如何在UITextField中设置其值后移动光标

任何人都可以帮助我:我需要实现input数字的UITextField 。 这个数字应该总是用十进制格式,例如12.3456或12.3400。 所以我创build了NSNumberFormatter ,可以帮助我NSNumberFormatter小数位。 我正在设置UITextField值 -(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string方法。 我处理input,使用格式化程序,最后调用[textField setText: myFormattedValue]; 这工作正常,但这个调用也移动光标到我的领域的末尾。 这是不需要的。 例如我在我的字段中有12.3400,光标位于最开始,用户键入数字1.结果值是112.3400,但光标在最后移动。 当用户期望时,我想用光标结束(最近添加的数字1之后)。 有一些关于在TextView设置光标的主题,但是这是UITextField 。 我也尝试捕获字段的selectedTextRange ,它正确地保存了光标位置,但是在setText方法调用之后,这自动地改变并且原始UITextRange丢失(改变为当前)。 希望我的解释清楚。 请在这件事上给予我帮助。 非常感谢你。 编辑 :最后,我决定切换function,改变整个编辑后的格式,工作足够好。 我已经通过添加一个select器forControlEvents:UIControlEventEditingDidEnd 。

如何从ISOCurrencyCodes获取NSNumberFormatter货币风格?

如果我有欧元或美元(两种ISO货币代码),我怎么能让我的NSNumberFormatter正确地格式化我这样的string? 对于欧元代码:10.000,00€对于美元代码:$ 10,000.00 我可以通过设置localeIdentifier来做到这一点。 但我真的需要从ISO货币代码中得到它。 这可能吗? [numberFormatter stringFromNumber: [_property price]]; 谢谢!

用逗号分隔的NSNumberFormatter

我试图将“12000.54”的NSString转换为“12.000,54”。 我写了一个NSNumberFormatter实例。 NSNumberFormatter *formatter = [[[NSNumberFormatter alloc] init] autorelease]; [formatter setFormatterBehavior:NSNumberFormatterBehavior10_4]; [formatter setNumberStyle:NSNumberFormatterDecimalStyle]; [formatter setGroupingSeparator:@"."]; [formatter setDecimalSeparator:@","]; 但是当我NSLog这个: NSLog(@"%@",[formatter stringFromNumber:[formatter numberFromString:value]]); 它打印空值。 如果我改变我的逗号点是正确的。 我只是想能够把我想要的分隔符字段(逗号,点,斜杠等),我有不同的输出:12 / 000,54 12.000.54 12,000,54例如。 你知道我可以如何处理这个?

NSNumberFormatter和'th''st''nd''rd'(有序)数字结尾

有没有办法使用NSNumberFormatter来获取“th”“st”“nd”“rd”数字结尾? 编辑: 看起来不存在 这是我正在使用的。 +(NSString*)ordinalNumberFormat:(NSInteger)num{ NSString *ending; int ones = num % 10; int tens = floor(num / 10); tens = tens % 10; if(tens == 1){ ending = @"th"; }else { switch (ones) { case 1: ending = @"st"; break; case 2: ending = @"nd"; break; case 3: ending = @"rd"; break; default: ending […]