关系型数据库mysql中,存储10.00这个值,若以float类型存储,是10.0,若以int类型存储,是10,怎么都是变样了,所以需要精确运算,一般以decimal对数据进行运算处理,decimal(a,b),a为整数部分允许存储二进制的最大个数,b为小数部分允许存储二进制的最大个数,b为2时就可以以10.00存储了。
在用python查询数据库数据时,常获得decimal类型的值,而python读取文件中数据都是字符串类型,所以要将这两种数据进行比对,就得把数据类型转换成一致。方案有以下两种:
一、将数据库中获取的数据用str()处理
二、将文件中数据用Decimal()处理
这里强调,python中的Decimal要导入才行,用法与数据库里的不同,大写,参数类型为字符串,可将字符串转换成精确数字,如:python中,1-0.9是略小于0.1的,但Decimal("1")-Decimal("0.9")=0.1,python中数据转字符串,转精确数字都是很有用的方法,需要掌握。
网友评论