Python 如何仅打印有效数字?

Python 如何仅打印有效数字?,python,string-formatting,number-formatting,Python,String Formatting,Number Formatting,我还没有找到答案 假设我有以下有理数: 0.00000857和1.03 使用%f将四舍五入为6位数,使0.00000857变为0.000009。此外,1.03将被填充为1.030000。设置.8f会将0.00000857打印为0.00000857,但会填充1.03。%g返回指数表示法,我不想要它 如何按原样打印(字符串化)两个数字,即0.00000857和1.03?您可以将浮点四舍五入到所需的小数位数(在您的情况下为6),然后将其格式化为这样的格式 print('{:.6f}'.format(0

我还没有找到答案

假设我有以下有理数: 0.00000857和1.03

使用%f将四舍五入为6位数,使0.00000857变为0.000009。此外,1.03将被填充为1.030000。设置.8f会将0.00000857打印为0.00000857,但会填充1.03。%g返回指数表示法,我不想要它


如何按原样打印(字符串化)两个数字,即0.00000857和1.03?

您可以将浮点四舍五入到所需的小数位数(在您的情况下为6),然后将其格式化为这样的格式

print('{:.6f}'.format(0.00000857))
要删除不需要的尾随零,请执行以下操作:

print('{:.6f}'.format(1.03).rstrip('0').rstrip('.'))

也许这个答案可以帮助你:也许有更好的方法,但这很有效。
“{0:.8f}”.format(x).rstrip('0')
你所说的“原样”是什么意思?你熟悉计算机如何处理浮点数吗?如果没有,请查看它,正如我所说,这将打印1.030000而不是1.03。希望这可以满足您的需要打印('{.6f})。格式(1.03)。rstrip('0')。rstrip('.'))请参考此答案