Swift-NumberFormatter的简单使用
来源:互联网 发布:欧式快热炉 油汀 知乎 编辑:程序博客网 时间:2024/06/16 13:54
NumberFormatter 看名字就知道是數字格式化,NumberFormatter实例用于格式化文本进行单元化显示。
1:NSNumberFormatter提供了两个非常便利的方法
2:如果想创建一个本地字符串来表示NSNumber值,不需要创建NSNumberFormatter对象,我们可以使用类方法
open func string(from number: NSNumber) -> String? 根据NSNumber得到Stringopen func number(from string: String) -> NSNumber? 根据String得到NSNumber使用NSNumberFormatter可以将NSNumber转化成自己想要的格式来进行输出,同时NSNumberFormatter也支持使用NSString类型的对象转换为NSNumber类型的对象
2:如果想创建一个本地字符串来表示NSNumber值,不需要创建NSNumberFormatter对象,我们可以使用类方法
open class func localizedString(from num: NSNumber, number nstyle: NumberFormatter.Style) -> String
3:如果我们在解析String的时候有复杂的要求,我们可以使用如下方法,该方法允许我们指定被解析的字符串范围。
open func getObjectValue(_ obj: AutoreleasingUnsafeMutablePointer<AnyObject?>?, for string: String, range rangep: UnsafeMutablePointer<NSRange>?) throws
4:使用格式化字符串来指定自定义格式,格式化字符串使用的格式模式来自于编码技术标准(Unicode Technical Standard),格式模式可以参考这里。注意格式模式必须在单引号(‘’)之间,我们可以使用 open var negativeFormat: String!和open var positiveFormat: String!这两个属性来设置格式化字符串,一些常用的操作符表示的意思:
. 表示小数点的位置
,逗号表示千分位显示的位置
0 表示补0,如果NSNumber太短,将进行补0操作,
# 表示没有填充,如果NSNumber太短,那么这里什么都没有
¤ 表示货币符号显示在这里
常用的小例子:
1:设置number的显示样式,下面number值为1234.5678
func numberFormatter(number: NSNumber) { //四舍五入的整数 let numberNoneStyleStr = NumberFormatter.localizedString(from: number, number: .none) //小数形式,以国际化格式输出 保留三位小数,第四位小数四舍五入 let numberDecimalStyleStr = NumberFormatter.localizedString(from: number, number: .decimal) //货币形式 -- 本地化 以货币通用格式输出 保留2位小数,第三位小数四舍五入,在前面添加dollor符号 $ let numberCurrencyStyleStr = NumberFormatter.localizedString(from: number, number: .currency) //百分数形式 let numberPercentStyleStr = NumberFormatter.localizedString(from: number, number: .percent) //科学计数 let numberScientificStyleStr = NumberFormatter.localizedString(from: number, number: .scientific) //朗读形式 -- 本地化 英文表示 let numberSpellOutStyleStr = NumberFormatter.localizedString(from: number, number: .spellOut) //序数形式 -- 本地化 let numberOrdinalStyleStr = NumberFormatter.localizedString(from: number, number: .ordinal) //货币形式 ISO -- 本地化 let numberCurrencyISOStyleStr = NumberFormatter.localizedString(from: number, number: .currencyISOCode) //货币形式 -- 本地化 let numberCurrencyPluralStyleStr = NumberFormatter.localizedString(from: number, number: .currencyPlural) //会计计数 -- 本地化 let numberCurrencyAccountingStyleStr = NumberFormatter.localizedString(from: number, number: .currencyAccounting) print("numberNoneStyleStr = \(numberNoneStyleStr)") print("numberDecimalStyleStr = \(numberDecimalStyleStr)") print("numberCurrencyStyleStr = \(numberCurrencyStyleStr)") print("numberPercentStyleStr = \(numberPercentStyleStr)") print("numberScientificStyleStr = \(numberScientificStyleStr)") print("numberSpellOutStyleStr = \(numberSpellOutStyleStr)") print("numberOrdinalStyleStr = \(numberOrdinalStyleStr)") print("numberCurrencyISOStyleStr = \(numberCurrencyISOStyleStr)") print("numberCurrencyPluralStyleStr = \(numberCurrencyPluralStyleStr)") print("numberCurrencyAccountingStyleStr = \(numberCurrencyAccountingStyleStr)") /* 打印结果: numberNoneStyleStr = 1235 numberDecimalStyleStr = 1,234.568 numberCurrencyStyleStr = $1,234.57 numberPercentStyleStr = 123,457% numberScientificStyleStr = 1.2345678E3 numberSpellOutStyleStr = one thousand two hundred thirty-four point five six seven eight numberOrdinalStyleStr = 1,235th numberCurrencyISOStyleStr = USD1,234.57 numberCurrencyPluralStyleStr = 1,234.57 US dollars numberCurrencyAccountingStyleStr = $1,234.57 */ }
2:定制NumberFormatter,设置相应的属性
func settingNumberFormatter() { let number = NSNumber(value: 10000.3456) let numberFormatter = NumberFormatter() //设置number显示样式 numberFormatter.numberStyle = .decimal //设置填充位置 numberFormatter.paddingPosition = .afterSuffix //设置填充符 numberFormatter.paddingCharacter = "?" //设置格式宽度 数据宽度为15 包括前后缀在内的宽度 numberFormatter.formatWidth = 15 //设置位置后缀值 numberFormatter.positiveSuffix = "元" //设置最大整数位数 numberFormatter.maximumIntegerDigits = 6 //设置最小整数位数 numberFormatter.minimumIntegerDigits = 1 print(numberFormatter.string(from: number)!) //10,000.346元???? }3:设置群组格式化
func formattingGroup() { let number = NSNumber(value: 1234567890098765) let numberFormatter = NumberFormatter() //设置用组分隔 numberFormatter.usesGroupingSeparator = true //四个一组 numberFormatter.groupingSize = 4 //组间用空格隔开 numberFormatter.groupingSeparator = " " //设置缩放倍数 numberFormatter.multiplier = 2 let string = numberFormatter.string(from: number) //2469 1357 8019 7530 print(string!) //设置千分符号 numberFormatter.groupingSeparator = "," numberFormatter.groupingSize = 3 let str = numberFormatter.string(from: number) print(str!) //2,469,135,780,197,530 }
4:设置分数位
func formattingtPercentage(){ let percentFormatter = NumberFormatter() percentFormatter.numberStyle = NumberFormatter.Style.percent percentFormatter.multiplier = 1 //设置最小小数点后的位数 percentFormatter.minimumFractionDigits = 1 //设置最大小数点后的位数 percentFormatter.maximumFractionDigits = 2 let myDouble1: Double = 8 let myString1 = percentFormatter.string(for: myDouble1) //let myString1 = percentFormatter.string(from: NSNumber(value: myDouble1)) // also works print(String(reflecting: myString1)) // Optional("8.0%") let myDouble2 = 8.5 let myString2 = percentFormatter.string(for: myDouble2) print(String(reflecting: myString2)) // Optional("8.5%") let myDouble3 = 8.5786 let myString3 = percentFormatter.string(for: myDouble3) print(String(reflecting: myString3)) // Optional("8.58%") }5:在$与数字之间加入空格
func addSpace(){ let formatter = NumberFormatter() formatter.numberStyle = .currency formatter.paddingPosition = .afterPrefix formatter.paddingCharacter = " " formatter.formatWidth = 7 print(formatter.string(from: 99.99)!)// prints "$ 99.99" }6:设置格式化字符串
func formattingNumberUsingFormatString() { let numberFormatter = NumberFormatter() numberFormatter.positiveFormat = "###,##0.000" let formatterNumberString = numberFormatter.string(from: NSNumber(value: 122344.4563)) print(formatterNumberString!)//122,344.456 }
0 0
- Swift-NumberFormatter的简单使用
- flash.globalization.NumberFormatter的用法
- 【Poco】Poco::NumberFormatter的例子
- Swift数组的简单使用
- Swift字典的简单使用
- Swift UITableView 的简单使用
- Swift - UIAlertController的简单使用
- Swift UIAlertView 的简单使用
- swift FMDB的简单使用
- swift的UILabel的简单使用总结
- Swift之NSNumberFormatter的简单使用
- 导航控制器的简单使用--Swift
- 7、Swift数组的简单使用
- 8、Swift字典的简单使用
- swift中UIButton的简单使用
- swift Touch ID 的简单使用 指纹识别
- Swift中XMPP的简单使用
- codeData的简单使用swift版
- 奔走相告 |《大数据产业发展规划(2016-2020年)》正式印发!
- 活动安排问题之二 贪心
- 存储技术与iSCSI
- Error:Could not download artifact 'com.android.tools.build:gradle:0.13.2:gradle.jar
- 系统函数-文件操作-lseek()
- Swift-NumberFormatter的简单使用
- Ubuntu每次启动都显示System program problem detected的解决办法
- 独木舟问题 贪心
- 一张图看清工业互联网发展史
- 字符串数组实例,字符串作为数组,应用任意数组,查表任意字符串,不等长字符串数组。字符串数组使用方法,打印字符串数组
- Eclipse快捷键大全
- pip 指定下载源
- 系统函数-文件操作-access()
- 【VS】vs2012解决nuget下载太慢的问题