示例
# python3
from decimal import Decimal
print(1 / 2) # 0.5
print(1 / 3) # 0.3333333333333333
print('%.10f' % (1 / 3)) # 0.3333333333
num = 9.2174
new_num = round(num, 2) # 保留两位小数
new_decimal_num = Decimal(num) # 十进制算术的浮点类
print(new_num) # 9.22
print(new_decimal_num) # 9.2173999999999995935695551452226936817169189453125
# coding=utf-8
from decimal import Decimal
print(1 / 2) # 0
print(1 / 3) # 0
print('%.10f' % (1 / 3)) # 0.0000000000
num = 9.2174
new_num = round(num, 2) # 保留两位小数
new_decimal_num = Decimal(num) # 十进制算术的浮点类
print(new_num) # 9.22
print(new_decimal_num) # 9.2173999999999995935695551452226936817169189453125
爬坑经历
- 经纬度转换的时候,做除法运算
- 经纬度从数据库中读取,比大小后,再去数据库查数据,要保证数据的精切,使用了Decimal类, 否则查询不到数据
- 考虑数据的异常处理
其他
除法运算
Python中的除法较其它语言显得非常高端,有套很复杂的规则。Python中的除法有两个运算符,/和//
首先来说/除法:
在python 2.x中/除法就跟我们熟悉的大多数语言,比如Java啊C啊差不多,整数相除的结果是一个整数,把小数部分完全忽略掉,浮点数除法会保留小数点的部分得到一个浮点数的结果。
在python 3.x中/除法不再这么做了,对于整数之间的相除,结果也会是浮点数。