Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何使用NSNumberFormatter仅显示前两位数字?_Ios_Swift_Swift2_Nsnumber_Nsnumberformatter - Fatal编程技术网

Ios 如何使用NSNumberFormatter仅显示前两位数字?

Ios 如何使用NSNumberFormatter仅显示前两位数字?,ios,swift,swift2,nsnumber,nsnumberformatter,Ios,Swift,Swift2,Nsnumber,Nsnumberformatter,我有一个数字,例如1329094。我只想得到我的前两个数字,见13 我创建NSNumberFormatterlike func setReceivedChart(description: [String], value: [Double]) { var descriptionString: String! var formatterNumber: NSNumber! var chartDataEntryArray = [ChartDataEntr

我有一个数字,例如1329094。我只想得到我的前两个数字,见13

我创建
NSNumberFormatter
like

 func setReceivedChart(description: [String], value: [Double]) {
        var descriptionString: String!
        var formatterNumber: NSNumber!
        var chartDataEntryArray = [ChartDataEntry]()
        for item in 0..<description.count {
            let chartEntry = ChartDataEntry(value: value[item], xIndex: item)
            chartDataEntryArray.append(chartEntry)
            descriptionString = description[item]
            formatterNumber = value[item]
        }
        let dataSet = LineChartDataSet(yVals: chartDataEntryArray, label: "")
        dataSet.drawCircleHoleEnabled = false
        dataSet.drawCirclesEnabled = true // change
        dataSet.drawCubicEnabled = true
        dataSet.drawFilledEnabled = true
        dataSet.circleRadius = 3.0 // for iphone
        dataSet.drawValuesEnabled = true

        print(descriptionString)


        let numberFormatter = NSNumberFormatter()
        numberFormatter.numberStyle = .NoStyle
       numberFormatter.usesSignificantDigits = true
       numberFormatter.maximumSignificantDigits = 2

        dataSet.valueFormatter = numberFormatter

        // set color 47 206 255
        dataSet.fillColor = UIColor(red: 47/255, green: 206/255, blue: 255/255, alpha: 1.0)
        let chartData = LineChartData(xVals: description, dataSet: dataSet)
        receivedChartView.data = chartData
    }
func setReceivedChart(说明:[字符串],值:[双精度]){
变量描述字符串:字符串!
var formatterNumber:NSNumber!
var chartDataEntryArray=[ChartDataEntry]()

对于0..中的项,除了
NSByteCountFormatter
之外,我不知道有一个数字格式化程序会缩放数字(删除尾随的零)。因此,在将循环中的每个数据点添加到图表数组之前,您需要缩放它。可能是这样的

注意: 仅使用非零有效数字绘制图表似乎非常危险。绘制12、120、1200、12000和120000000000000图表将显示相同的值。

func setReceivedChart(description: [String], value: [Double]) {
  let significantFigures = NSNumberFormatter()
  significantFigures.usesSignificantDigits = true
  significantFigures.maximumSignificantDigits = 2

  var chartDataEntryArray = [ChartDataEntry]()
  for item in 0..<description.count {
    if let datum = significantFigures.stringFromNumber(value[item]) {
      datum.stringByReplacingOccurrencesOfString("0", withString: "", options: .LiteralSearch, range: nil)
      let chartEntry = ChartDataEntry(value: Double(datum), xIndex: item)
      chartDataEntryArray.append(chartEntry)
    }
    else {
      // handle error, keep charDataEntryArray in sync with description[]
    }
  }

  let dataSet = LineChartDataSet(yVals: chartDataEntryArray, label: "")
  dataSet.drawCircleHoleEnabled = false
  dataSet.drawCirclesEnabled = true // change
  dataSet.drawCubicEnabled = true
  dataSet.drawFilledEnabled = true
  dataSet.circleRadius = 3.0 // for iphone
  dataSet.drawValuesEnabled = true

  let numberFormatter = NSNumberFormatter()
  numberFormatter.numberStyle = .NoStyle
  dataSet.valueFormatter = numberFormatter

  // set color 47 206 255
  dataSet.fillColor = UIColor(red: 47/255, green: 206/255, blue: 255/255, alpha: 1.0)
  let chartData = LineChartData(xVals: description, dataSet: dataSet)
  receivedChartView.data = chartData
}
func setReceivedChart(说明:[字符串],值:[双精度]){
设有效数字=NSNumberFormatter()
有效数字Figures.usesSignificantDigits=真
有效数字。最大有效数字=2
var chartDataEntryArray=[ChartDataEntry]()

对于0..中的项,除了
NSByteCountFormatter
之外,我不知道有一个数字格式化程序会缩放数字(删除尾随的零)。因此,在将循环中的每个数据点添加到图表数组之前,您需要缩放它。可能是这样的

注意: 仅使用非零有效数字绘制图表似乎非常危险。绘制12、120、1200、12000和120000000000000图表将显示相同的值。

func setReceivedChart(description: [String], value: [Double]) {
  let significantFigures = NSNumberFormatter()
  significantFigures.usesSignificantDigits = true
  significantFigures.maximumSignificantDigits = 2

  var chartDataEntryArray = [ChartDataEntry]()
  for item in 0..<description.count {
    if let datum = significantFigures.stringFromNumber(value[item]) {
      datum.stringByReplacingOccurrencesOfString("0", withString: "", options: .LiteralSearch, range: nil)
      let chartEntry = ChartDataEntry(value: Double(datum), xIndex: item)
      chartDataEntryArray.append(chartEntry)
    }
    else {
      // handle error, keep charDataEntryArray in sync with description[]
    }
  }

  let dataSet = LineChartDataSet(yVals: chartDataEntryArray, label: "")
  dataSet.drawCircleHoleEnabled = false
  dataSet.drawCirclesEnabled = true // change
  dataSet.drawCubicEnabled = true
  dataSet.drawFilledEnabled = true
  dataSet.circleRadius = 3.0 // for iphone
  dataSet.drawValuesEnabled = true

  let numberFormatter = NSNumberFormatter()
  numberFormatter.numberStyle = .NoStyle
  dataSet.valueFormatter = numberFormatter

  // set color 47 206 255
  dataSet.fillColor = UIColor(red: 47/255, green: 206/255, blue: 255/255, alpha: 1.0)
  let chartData = LineChartData(xVals: description, dataSet: dataSet)
  receivedChartView.data = chartData
}
func setReceivedChart(说明:[字符串],值:[双精度]){
设有效数字=NSNumberFormatter()
有效数字Figures.usesSignificantDigits=真
有效数字。最大有效数字=2
var chartDataEntryArray=[ChartDataEntry]()

对于0..中的项目,为什么不将数字转换为
字符串
,去掉不需要的数字并将其转换回去

let number = 1329094
let numberAsString = String(number)
let subString = numberAsString.substringToIndex(numberAsString.startIndex.advancedBy(2))
let trimmedNumber = Int(subString)


为什么不将数字转换为
字符串
,去掉不需要的数字并将其转换回来呢

let number = 1329094
let numberAsString = String(number)
let subString = numberAsString.substringToIndex(numberAsString.startIndex.advancedBy(2))
let trimmedNumber = Int(subString)


请不要包含与您询问的主题不相关的代码。这只会降低相关代码的可视性。请不要包含与您询问的主题不相关的代码。这只会降低相关代码的可视性。请查看请查看,因为图形需要数据,我会测量它们用于构建良好计划的字节数。如果我最初将其转换为不同的值,例如兆字节和字节,则图表中的704字节将超过1.5兆字节。然后您可能需要类似于
NSByteCountFormatter
。我无法使用NSByteCountFormatter。我也尝试了它。因为iOS图表库仅支持y NSNumberFormatter我不知道那个库,你在问题中没有提到它。基本上,你不能用NSNumberFormatter从一个数字中去掉最重要的数字。PS:
NSValueTransformer
可能会帮助你,因为图形需要数据,我会用字节来测量它们,以构建一个好的时间表。如果我初始化将704字节转换为不同的值,如MB和字节,图表中的704字节将超过1.5 MB。然后您可能需要类似于
NSByteCountFormatter
。我无法使用NSByteCountFormatter。我也尝试过。因为iOS图表库只支持NSNumberFormatter,我不知道该库,您也不知道在你的问题中要注意这一点。基本上,你不能用NSNumberFormatter从数字中去掉最重要的数字。PS:
NSValueTransformer
可能会对你有所帮助