我要取一个整数,然后用sqrt函数将其根数以浮点数打印到小数点后4位;但是我有问题例如,当我将3作为输入时,输出为1.7320。它是正确的;但是当我输入4时,我希望输出2.0000。但我看到的是1.9999我究竟做错了什么?

import math
num = math.sqrt(float(input())) - 0.00005
print('%.4f' % num)

最佳答案

根据对3的平方根的预期输出,似乎您真的只想将平方根的输出截断或扩展到4个小数位(而不是向上舍入或向下舍入)。在这种情况下,您可以将格式设置为小数点后5位,然后将字符串中的最后一个字符切掉(下面的示例将您的输入内容替换为硬编码的字符串以进行说明)。

import math

n = '{:.5f}'.format(math.sqrt(float('3')))[:-1]
print(n)
# 1.7320

n = '{:.5f}'.format(math.sqrt(float('4')))[:-1]
print(n)
# 2.0000

关于python - 如何将浮点数转换为4位小数而不进行舍入?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57294595/

10-16 23:03