如何在Python中的这种特殊情况下对数字进行综合?

时间:2016-11-19 03:02:31

标签: python

我试图弄清楚如何进行综合。 〔实施例:

3.1049 -> 3.11

我该如何进行综合? 谢谢!

编辑:

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

但我想:

>>>3.11     #as 3.1049-> 3.105->3.11

3 个答案:

答案 0 :(得分: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

希望你明白这里发生了什么!

答案 1 :(得分:0)

我认为数学模块可能适用于您的情况。

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

答案 2 :(得分: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

它使用一个循环,每个小数位向上舍入。