2017-06-27 56 views
3

我想將1.00和2.00分別轉換爲1和2.當我嘗試將entry.y = Double(value)更改爲entry.y = Int(value)時,它表示它必須是Double。我如何將這些值轉換爲整數?swift/charts:圖表值int而不是雙倍

var entries = [PieChartDataEntry]() 
     for (index, value) in dataarray.enumerated() { 
      let entry = PieChartDataEntry() 
      entry.y = Double(value) 
      entry.label = self.labels[index] 
      entries.append(entry) 
     } 

這是我使用的圖表:

Chart

+0

我有餅圖沒有經驗,但是這看起來類似:https://stackoverflow.com/questions/40453604/how-to -add-to-data-in-ios-chart,即你必須設置一個「值格式化程序」。 –

+0

@MartinR感謝您的鏈接,但我的數據輸入結構與該文章中的結構不同。 – Hunter

+0

這只是意味着你尋找「價值格式化工」。 –

回答

0

相反的:

entry.y = Double(value) 

務必:

entry.y = Int(value) 

注意2.12.2等將返回2

+0

我得到'不能分配'Int'類型的值來輸入'Double'的錯誤。然後它建議我把它改成'entry.y = Double(Int(value))' – Hunter

+0

這是因爲你的'entry.y'是'Double'類型的。你可以做的是刪除小數點後的數字。我會更新答案。 –

+0

如何在小數點後刪除數字? – Hunter

0

嘗試這種情況:

let number = NSNumber(value: value) 
entry.y = number.integerValue 
+0

感謝您的回答,但它不起作用。它讓我把它改成'entry.y = Double(number.intValue)' – Hunter

2

讓pieChartView = PieChartView(幀:的CGRect(X:60,Y:50,寬度:200,高度:300))

let track = ["Passed", "Failed", "Pending"] 
    let money = [10, 6, 10] 

    var entries = [PieChartDataEntry]() 
    for (index, value) in money.enumerated() { 
     let entry = PieChartDataEntry() 

     entry.y = Double(value) 

     entry.label = track[index] 
     entries.append(entry) 
    } 

設設定= PieChartDataSet(值:條目,標記: 「」)

讓數據= PieChartData(數據集:集)

pieChartView.data =數據

讓利格式=的NumberFormatter()

formatter.minimumFractionDigits = 0 

    data.setValueFormatter(DefaultValueFormatter(formatter:formatter))