ROUND函数的使用,小数精度调控难点

 

三、抢先19个人精度解析

 

 

 

from math import ceil, floor

# ceil():取大于或等于x的最小整数
print("1: %s" % ceil(2.5))  # 1: 3
print("2: %s" % ceil(2.3))  # 2: 3
print("3: %s" % ceil(2.6))  # 3: 3

# floor():取小于或等于x的最大整数
print("4: %s" % floor(2.5))  # 4: 2
print("5: %s" % floor(2.3))  # 5: 2
print("6: %s" % floor(2.6))  # 6: 2

 

  ndigits:不取值,number的小数部分从没0.5的时候,则遵照四舍五入进行取值;

 

2.math模块下的floor(x)函数:取小于或许等于x的最大整数

图片 1

 

图片 2

print("1: %.30f" % (1/3))  # 输出:1: 0.333333333333333314829616256247
print("2: %s" % round((1/3), 30))  # 输出:2: 0.3333333333333333

出现错误是因为987.45为decimal(5,2),它不也许代表1000.00,此时内需退换数据类型

 

SELECT ROUND(987.45,-2)

  python中默许的为十八个人小数精度,但倘诺大家供给选择越来越高精度的时候(意味着超越十七位小数),假如管理?

参考: 

上边介绍一种办法:高精度使用
decimal模块,同盟getcontext

图片 3

  round(number,[ndigits]):round
对传播的数量开展四舍五入,但而不是古板意义上的四舍五入。number:供给被管理的参数;ndigits:保留的位数。

 从地点结果能够观察,数据毫无只保留两位小数,而是保存两位有效小数。

 四、关于小数和取整

除此以外,若是精度为负数,则为整数部分正确取值。

      取值,number的小数部分存在.5的时候,小数位前是奇数则遗弃,小数位前是偶数则向上取(意味着,一旦现身小数位后为.5的,则小数位前取值,不或者取到偶数);

其多个参数假若是0,则四舍五入,要是是非0,则截断

       
不取值,number的小数部分存在0.5的时候,round()取接近的偶数;

网站地图xml地图