Python浮点数格式化失效:为何无法限制为2位小数?
问题解答:为何浮点数无法限制为2位小数?
嘿,这问题我之前也踩过类似的坑!你现在用的格式说明符{:2f}理解错啦——它的作用是指定输出的最小宽度为2个字符,而不是控制小数位数。所以不管你的数字有多少位小数,它都会完整输出,只是如果整体长度不够2的话会自动补空格。
要限制浮点数为2位小数,你需要把格式符改成{:.2f},这里的.后面的数字才是用来定义保留小数位数的关键。
修正后的代码:
print('Average BTC Left: {:.2f} ± {:.2f}\tAverage Total Profit: {:.2f} ± {:.2f}\t Average Ending BTC Price: {:.2f} ± {:.2f}\t'.format( results_df['Current BTC'].mean(), results_df['Current BTC'].std(), results_df['Total Profit'].mean(), results_df['Total Profit'].std(), results_df['Ending BTC Price'].mean(), results_df['Ending BTC Price'].std() ))
直观对比示例:
- 用
{:2f}输出0.097777:会得到0.097777(完整保留6位小数,因为整体长度已经超过2) - 用
{:.2f}输出0.097777:会四舍五入得到0.10
这样修改后,你的输出就会变成符合预期的两位小数格式啦!
内容的提问来源于stack exchange,提问作者Shamoon
相关产品推荐
相关产品推荐

