草庐IT

NSNumberFormatter

全部标签

iphone - NSNumberFormatter 的乘数向下舍入而不是显示分数

我已经配置了一个NSNumberFormatter来将NSDictionary中存储为美分的金额转换为欧元。因为它们存储为美分,所以我将格式化程序的multiplier设置为[NSNumbernumberWithDouble:0.01]。但是,当我尝试将304欧分显示为欧元时,我得到€3,00。这让我相信乘法器进行整数除法而不是双除法。NSFormatter配置/**ReturnsanNSNumberFormatterthatcanbeusedtodisplaycurrencyineuro's(asdeterminedinTheNetherlands).*/+(NSNumberForm

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

我使用NSNumberFormatter将用户输入转换为NSNumber(十进制数),我使用ARC。NSNumberFormatter*f=[[NSNumberFormatteralloc]init];[fsetNumberStyle:NSNumberFormatterDecimalStyle];[fsetMaximumFractionDigits:1];_myNumber=[fnumberFromString:myTextField.text];有时这会导致_myNumber为nil。即使我完全确定用户输入的是正确的十进制数(我在调试期间检查过)。为了完整性:_myNumber是Vi

ios - NSNumberFormatter:用 AND 助词拼出一个数字(英式拼写)

以下代码:AVSpeechSynthesizer*speechSynthesizer=[[AVSpeechSynthesizeralloc]init];AVSpeechUtterance*utterance=[AVSpeechUtterancespeechUtteranceWithString:@"112"];utterance.voice=[AVSpeechSynthesisVoicevoiceWithLanguage:@"en-GB"];speechSynthesizerspeakUtterance:utterance];导致设备说:“一百and十二”(英式拼写)但是,如果您改为音

ios - NSNumberFormatter currencySymbol 错误

我在获取NSNumberFormatter的currencySymbol时遇到问题。我使用带有货币代码“EUR”的NSNumberFormatter。当我格式化价格时,符号是正确的,我得到了€符号。但是,当我只想使用方法[formattercurrencySymbol]获取currencySymbol时,会返回符号$。如果我手动设置currencySymbol(例如使用“A”),一切都会正常工作,方法[formattercurrencySymbol]将返回“A”符号。这是我的代码//CreateformatterNSNumberFormatter*formatter=[[NSNumbe

swift - Cocoa/Swift 3.0 替换 NSNumberFormatter.isPartialStringValid

在macOS的SwiftCocoa应用程序中,我继承自NSNumberFormatter并覆盖了isPartialStringValid。迁移到Swift3.0后,我现在必须将NumberFormatter子类化,但出现错误“方法未覆盖其父类(superclass)中的任何方法”。我可以用什么来代替这个方法?overridefuncisPartialStringValid(_partialString:String,newEditingStringnewString:AutoreleasingUnsafeMutablePointer>?,errorDescriptionerror:Au

ios - NSNumberFormatter 的不一致行为

当我将usesSignificantDigits属性设置为true时,NSNumberFormatter将不遵守maximumFractionDigits。我认为这也适用于minimumFractionDigits。例如:letformatter:NSNumberFormatter=NSNumberFormatter()formatter.locale=NSLocale.currentLocale()formatter.maximumFractionDigits=2formatter.allowsFloats=trueformatter.numberStyle=NSNumberForm

swift - 货币格式的 NSNumberFormatter.number 在设备中不起作用但在模拟器中起作用

我一直在尝试根据传递我的自定义语言标识符来实现货币格式。下面是我的代码funccurrencyFormatter(language:String,amount:String)->String{letnsFormatter=NumberFormatter()nsFormatter.numberStyle=.currencynsFormatter.currencySymbol=""varformattedString:String?varamountInNumber:NSNumber!ifletnumber=nsFormatter.number(from:amount){amountInN

swift - 删除 NSNumberFormatter 连字符

我正在使用这段代码,varnumber:NSNumber=NSNumber.numberWithInteger(mylabel.integerValue)varnumberFormatter:NSNumberFormatter=NSNumberFormatter()numberFormatter.numberStyle=NSNumberFormatterStyle.SpellOutStylenumberFormatter.formatterBehavior=NSNumberFormatterBehavior.BehaviorDefaultself.displyingLabel.text

ios - NSNumberFormatter.numberFromString() 为 ar-SA 语言环境返回 nil

我正在尝试使用NSNumberFormatter为NSNumberFormatterStyle.DecimalStyle格式化所选语言环境的UILabel文本,并将格式化程序的语言环境设置为ar-SA。当UILabel文本中有大量数字被转换为E记数法(科学计数法),例如“1e9”、“2.3456e24”等时,numberFromString()为ar-SA语言环境返回nil。但是,它适用于其他语言环境。@IBOutletweakvardisplayText:UILabel!letformat=NSNumberFormatter()format.numberStyle=NSNumberF

ios - 如何设置 NSNumberFormatter 以使用 "万"(日文/中文 10,000 标记)显示数字?

我的iOS应用在不同的本地化版本(en_US、en_AU、ja_JP等)中显示不同的货币(USD、JPY、AUD、EUR)).对于日语地区/语言(两者都在我的设备上设置),如果我:NSNumberFormatter*fmt=[[NSNumberFormatteralloc]init];fmt.numberStyle=NSNumberFormatterCurrencyStyle;fmt.currencyCode=@"JPY";NSString*labelText=[fmtstringFromNumber:@1000000];我的标签文本是¥1,000,000。但是,在日文和中文中,大于1