Python round函数舍入异常:保留2位小数仅显示1位
解决Jupyter Notebook中舍入后小数末尾零不显示的问题
这是因为Python默认的数值显示会自动省略小数部分末尾的零(毕竟64.1和64.10在数值上等价),但如果需要强制显示指定位数的小数,可以用以下几种方法:
方法1:使用f-string格式化输出
这是Python 3.6+最简洁的方式,直接在输出时指定小数位数:
num = 64.10343 rounded_num = round(num, 2) print(f"{rounded_num:.2f}") # 输出:64.10
方法2:使用format()函数
兼容性更广,原理和f-string一致:
num = 64.10343 rounded_num = round(num, 2) print("{:.2f}".format(rounded_num)) # 输出:64.10
方法3:合并舍入与格式化一步完成
不需要单独执行round(),直接通过格式化完成舍入并显示:
num = 64.10343 print(f"{num:.2f}") # 输出:64.10
方法4:处理pandas数据框时的设置
如果在Jupyter中用pandas展示数据,需要配置列的显示格式:
import pandas as pd df = pd.DataFrame({"value": [64.10343]}) df["value"] = df["value"].round(2) pd.options.display.float_format = '{:.2f}'.format print(df) # 输出的value列会显示64.10
注意:这些方法都是调整显示格式,数值本身在舍入后已经是两位小数精度,只是默认显示省略了末尾的零。
内容的提问来源于stack exchange,提问作者Hari
相关产品推荐
相关产品推荐

