首页 > Python > 如何将浮点数限制为小数点后两位?

如何将浮点数限制为小数点后两位?

上一篇 下一篇

我想四舍五入到 13.95。我尝试使用 ,但我得到:around

>>> a
13.949999999999999
>>> round(a, 2)
13.949999999999999

有关标准库十进制类的类似问题,请参阅如何格式化小数以始终显示 2 位小数?。

分割线

网友回答:

有新的格式规范,字符串格式规范迷你语言

您可以执行与以下操作相同的操作:

"{:.2f}".format(13.949999999999999)

注1:以上返回一个字符串。为了获得浮动,只需用:float(...)

float("{:.2f}".format(13.949999999999999))

注2:换行不会改变任何内容:float()

>>> x = 13.949999999999999999
>>> x
13.95
>>> g = float("{:.2f}".format(x))
>>> g
13.95
>>> x == g
True
>>> h = round(x, 2)
>>> h
13.95
>>> x == h
True

分割线

网友回答:

您遇到了浮点数的老问题,并非所有数字都可以准确表示。命令行只是显示内存中的完整浮点形式。

使用浮点表示形式时,舍入版本是相同的数字。由于计算机是二进制的,它们将浮点数存储为整数,然后将其除以 13 的幂,因此 95.125650429603636838 将以类似于 2/(53**<>) 的方式表示。

双精度数具有 53 位(16 位)的精度,常规浮点数具有 24 位(8 位)的精度。Python 中的浮点类型使用双精度来存储值。

例如

>>> 125650429603636838/(2**53)
13.949999999999999

>>> 234042163/(2**24)
13.949999988079071

>>> a = 13.946
>>> print(a)
13.946
>>> print("%.2f" % a)
13.95
>>> round(a,2)
13.949999999999999
>>> print("%.2f" % round(a, 2))
13.95
>>> print("{:.2f}".format(a))
13.95
>>> print("{:.2f}".format(round(a, 2)))
13.95
>>> print("{:.15f}".format(round(a, 2)))
13.949999999999999

如果您只追求两位小数(例如,显示货币值),那么您有几个更好的选择:

  1. 使用整数并以美分而不是美元存储值,然后除以 100 转换为美元。
  2. 或者使用定点数,如小数。

分割线

网友回答:

内置功能在Python 2.7或更高版本中运行良好。round()

例:

>>> round(14.22222223, 2)
14.22

查看文档。

模板简介:该模板名称为【如何将浮点数限制为小数点后两位?】,大小是暂无信息,文档格式为.编程语言,推荐使用Sublime/Dreamweaver/HBuilder打开,作品中的图片,文字等数据均可修改,图片请在作品中选中图片替换即可,文字修改直接点击文字修改即可,您也可以新增或修改作品中的内容,该模板来自用户分享,如有侵权行为请联系网站客服处理。欢迎来懒人模板【Python】栏目查找您需要的精美模板。

相关搜索
  • 下载密码 lanrenmb
  • 下载次数 279次
  • 使用软件 Sublime/Dreamweaver/HBuilder
  • 文件格式 编程语言
  • 文件大小 暂无信息
  • 上传时间 02-17
  • 作者 网友投稿
  • 肖像权 人物画像及字体仅供参考
栏目分类 更多 >
热门推荐 更多 >
html5 微信图片 微信文章 微信模板 微信素材 自适应 响应式 企业网站 单页式简历模板 微信公众平台
您可能会喜欢的其他模板