swift – NSNumberFormatter:大量显示’k’而不是’,000’?
发布时间:2020-12-14 05:23:31 所属栏目:百科 来源:网络整理
导读:如果可能的话,我想将我的大数字从100,000改为$100K. 这是我到目前为止: let valueFormatter = NSNumberFormatter()valueFormatter.locale = NSLocale.currentLocale()valueFormatter.numberStyle = .CurrencyStylevalueFormatter.maximumFractionDigits = 0
如果可能的话,我想将我的大数字从100,000改为$100K.
这是我到目前为止: let valueFormatter = NSNumberFormatter() valueFormatter.locale = NSLocale.currentLocale() valueFormatter.numberStyle = .CurrencyStyle valueFormatter.maximumFractionDigits = 0 我的问题 使用NSNumberFormatter,我如何输出$100K而不是$100,000? 我原来的问题: 这是我到目前为止: self.lineChartView.leftAxis.valueFormatter = NSNumberFormatter() self.lineChartView.leftAxis.valueFormatter?.locale = NSLocale.currentLocale() self.lineChartView.leftAxis.valueFormatter?.numberStyle = .CurrencyStyle self.lineChartView.leftAxis.valueFormatter?.maximumFractionDigits = 0 其中翻译为: let valueFormatter = NSNumberFormatter() valueFormatter.locale = NSLocale.currentLocale() valueFormatter.numberStyle = .CurrencyStyle valueFormatter.maximumFractionDigits = 0 我的输出如下: 我的问题 使用NSNumberFormatter,000? 更新: 我想提供有关最新情况的背景,观看评论. func setDollarsData(months: [String],range: Double) { var dataSets: [LineChartDataSet] = [LineChartDataSet]() var yVals: [ChartDataEntry] = [ChartDataEntry]() for var i = 0; i < months.count; i++ { // I'm adding my values here in value:,value takes a Double yVals.append(ChartDataEntry(value: county[userFavs[0]]![i],xIndex: i)) } let set1: LineChartDataSet = LineChartDataSet(yVals: yVals,label: self.userFavs[0]) set1.axisDependency = .Left set1.setColor(UIColor.redColor().colorWithAlphaComponent(0.5)) set1.setCircleColor(UIColor.redColor()) set1.lineWidth = 2.0 set1.circleRadius = 6.0 set1.fillAlpha = 65 / 255.0 dataSets.append(set1) let data: LineChartData = LineChartData(xVals: months,dataSets: dataSets) data.setValueTextColor(UIColor.whiteColor()) // this is where I set the number formatter self.lineChartView.gridBackgroundColor = UIColor.darkGrayColor() self.lineChartView.leftAxis.startAtZeroEnabled = false self.lineChartView.leftAxis.valueFormatter = NSNumberFormatter() self.lineChartView.leftAxis.valueFormatter?.locale = NSLocale.currentLocale() self.lineChartView.leftAxis.valueFormatter?.numberStyle = .CurrencyStyle self.lineChartView.leftAxis.valueFormatter?.maximumFractionDigits = 0 // set it to the chart // END OF THE LINE self.lineChartView.data = data // outputs to my chart } 正如您所看到的,一旦我将数字转储到yVals中,我就失去了对它们的访问权限,因此这些扩展只有在我入侵框架时才能工作.
编辑/更新
Swift 3或更高版本 extension FloatingPoint { var kFormatted: String { return String(format: self >= 1000 ? "$%.0fK" : "$%.0f",(self >= 1000 ? self/1000 : self) as! CVarArg ) } } 您可以像这样使用它来格式化您的输出: 10.0.kFormatted // "$10" 100.0.kFormatted // "$100" 1000.0.kFormatted // "$1K" 10000.0.kFormatted // "$10K" 162000.0.kFormatted // "$162K" 153000.0.kFormatted // "$153K" 144000.0.kFormatted // "$144K" 135000.0.kFormatted // "$135K" 126000.0.kFormatted // "$126K" (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |