如何将数字四舍五入为常数小数

时间:2019-04-19 14:59:04

标签: python

我想使用“ math.sqrt”,即使对于像“ 4”这样的数字,我的输出也应具有小数点后4位。有什么功能或方法吗? 我使用了“ round(num_sqrt,4)”,但是没有用。

我的输入就像: 1个 2 3 19 输出必须是: 1.0000 1.4142 1.7320 4.3588 我的输出是: 1.0 1.4142 1.7320 4.3588

2 个答案:

答案 0 :(得分:1)

尝试一下

from decimal import Decimal
import math

# example with sqrt function
y = Decimal(math.sqrt(4))
z = round(y, 4)
print(z) # output 2.0000

# First we take a float and convert it to a decimal
x = Decimal(16.0/7)
print(x)

# Then we round it to 4 places
output = round(x,4)
print(output) # outpun 2.2857

答案 1 :(得分:0)

如果您确实需要不必要的零,请尝试以下操作:

def format_floats(reference, values):
    formatted_values = []
    for i in range(len(values)):
        length = len(str(reference)[str(reference).find("."):])-1
        new_float = str(round(values[i], length))
        new_float += "0"*(len(str(reference))-len(new_float))
        formatted_values.append(new_float)

    return formatted_values

if __name__ == '__main__':

    reference = 0.12345
    values = [1.04, 2.045, 2.0]

    print(format_floats(reference, values))

输出:['1.04000','2.04500','2.00000']