【发布时间】:2015-10-19 20:13:59
【问题描述】:
如果可能的话,我想将我的大数字从 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,如何输出 $100K 而不是 $100,000?
更新:
我想提供有关正在发生的事情的背景信息,请观看 cmets。
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 中,我就无法访问它们,因此这些扩展只有在我侵入框架时才能工作。
【问题讨论】:
-
根据stackoverflow.com/questions/11097064/…(和链接的线程),该功能不是“内置”到 NSNumberFormatter。
-
你能做到吗?提前致谢
-
很久以前,但我想我使用了 Leo 的扩展程序,并且刚刚更新了 ios-charts 库代码以满足我的需要。不是最好的方法。
-
你如何在地图中使用这个 kformatted @DanBeaulieu
-
阅读您上面的评论。
标签: swift nsnumberformatter currency-formatting ios-charts