2016-11-19 85 views
-3

我想弄清楚如何綜合。 例如:如何在Python中的這種特殊情況下對數字進行總結?

3.1049 -> 3.11 

我該如何綜述? 謝謝!

編輯:

num = 3.1049 
print (round(a, 2)) 
>>> 3.1 

,但我想:

>>>3.11  #as 3.1049-> 3.105->3.11 
+0

它並沒有從9的綜合報告,但4 ...我想從9綜合起來。 – Kristine

+0

你是從9表示什麼意思? 9是小數點後第四位,所以舍入將有3位小數,這將是3.105。 – njzk2

+0

你目前有什麼代碼?這不是一個代碼寫入服務。 – blacksite

回答

0

在這裏你去老兄,這是很簡單的閱讀,並且不需要任何新的庫:

num = 3.1049 
print(%.2f" % num) 

這會給你以下結果:

>>> num = 3.1049 
>>> print(%.2f" % num) 
>>> 3.10 

>>> num = 3.1051 
>>> print(%.2f" % num) 
>>> 3.11 

因此,我們可以創建這樣的方法,它看起來像:

>>> def round_hundredths(num): 
     return "%.2f" % num 

>>> print(round_hundredths(3.1049)) 

,輸出:

>>> 3.10 

希望你明白是怎麼回事!

0

我認爲數學模塊可能適合您的情況。

import math 
num = 3.1049 
print(math.ceil(num*100)/100) 
0

OP想整理。可能是一個通用的解決方案。 Gumboy的解決方案有效。這是一個通用的解決方案。

def mround(x, n): 
    x_str = str(x).split('.') 

    for i in range(len(x_str[1]), n, -1): 
     s = 5 * 10 ** -i 
     if xs[1][-i + 1] == '0': 
      x = round(x, i - 1) 
     else: 
      x = round(x + s, i - 1) 

    return x 

用法:

>>> mround(3.1049, 2) 
3.11 
>>> mround(3.1049, 1) 
3.1 

它使用一個循環,向上舍每一位小數。

+0

爲什麼'mround(3.1049,1)'給出'3.2'!? – ekhumoro

+0

@ekhumoro固定 – chucksys