学习 pyhton 遇到内置函数,持续笔记中.......
round(number ,[digits])
返回 number 舍入到小数点后 digits 位精度的值。如果 digits 被省略或者为 None ,则返回最接近输入值的这整数。
对于支持 round()
的内置类型,值会被舍入到最接近的 10 的负 ndigits 次幂的倍数;如果与两个倍数的距离相等,则选择偶数 (因此,round(0.5)
和 round(-0.5)
均为 0
而 round(1.5)
为 2
)。 任何整数值都可作为有效的 ndigits (正数、零或负数)。 如果 ndigits 被省略或为 None
则返回值将为整数。 否则返回值与 number 的类型相同。
对于一般的 Python 对象 number
, round
将委托给 number.__round__
。
注解
对浮点数执行 round()
的行为可能会令人惊讶:例如,round(2.675, 2)
将给出 2.67
而不是期望的 2.68
。 这不算是程序错误:这一结果是由于大多数十进制小数实际上都不能以浮点数精确地表示。 请参阅 浮点算术:争议和限制 了解更多信息。
大部分架构上,浮点数都只能近似地使用二进制小数表示,因此Python通过显示舍入值来保持可管理的位数
牢记,即使输出的结果看起来好像就是 1/10 的精确值,实际储存的值只是最接近 1/10 的计算机可表示的二进制分数。注意这种情况是二进制浮点数的本质特性:它不是 Python 的错误,也不是你代码中的错误。 你会在所有支持你的硬件中的浮点运算的语言中发现同样的情况(虽然某些语言在默认状态或所有输出模块下都不会 显示 这种差异)。
网友评论