繁体   English   中英

如何将浮点数转换为小数点后 4 位而不进行任何四舍五入?

[英]how to convert a float number to 4 decimal places without any rounding?

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

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

查看圆形浮点数为 x 位小数?

该页面的解决方案之一是将您的打印语句替换为: print(format(num, '.4'))

使用现代 f 字符串: print(f'{num:.4f}')

根据您对 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM