2016-01-17 27 views
0

首先,我知道一個類似的問題之前已經被問過了,但我認爲這種情況要求採用與我的方法不同的方法。將浮點的2D列表格式化爲2個小數點; Python

我有一個溫度列表,我只需要用2位小數打印出來。到目前爲止,我有:

def getWeekAverages(): 
    weekAverages = [] 
    MAX = WEEKS 
    total = 0 
    for week in range (WEEKS): 
     total = 0   
     for day in range(len(DAYS)): 
      total += round(float(database[week][day]), 2) 

     weekAverages.append(total/7) 

    return weekAverages 

我試過10種不同的方式來做到這一點,包括唱「%.2f」和輪。我對numpy數組不太熟悉,所以我可能只需要閱讀更多內容。當我運行程序沒有任何改變,我的輸出來到:

The average temperatures for a given week are [77.71428571428571, 71.71428571428571, 74.0, 77.85714285714286, 35.42857142857143, 0.0] 

我欣賞任何人的時間,他們提供。

+0

使用'float'而不是'int'。 –

+0

你是說我在哪裏增加總數?我試過了,我仍然給我同樣的錯誤 –

+0

這是您在調用'int()'函數時發佈的代碼中唯一的地方。請提供帶有_full_ traceback的[MCVE](http://stackoverflow.com/help/mcve)。 – TigerhawkT3

回答

3

您正在使用int()來解析浮點數的字符串表示形式。你應該這樣做,float()

total += float(database[week][day]) 

如果你想將其轉換成一個整數,你可以繞着它(Python 3中的round()返回四捨五入爲零的小數位時int)或使用該floatint()功能(它不能處理字符串表示浮點數,但它可以找到浮點數的底部)。

total = int(total) 
+0

這確實會給出相同的'ValueError',但問題是錯誤發生在前面的行。 – TheBamf

+0

我意識到的問題是我有一個二維數組,我只有很多方法來格式化單維數組 –