一 python中表示数字的相关类型
在python中要表示一个数字,就要用它所支持的一些类型创建。在python中常见的数字类型有int、float、complex(复数),Decimal等
二 int类型和float类型
int为整数类型,float为浮点数类型及小数
要表示一个数为整数类型,给直接把一个整数赋值给变量或用内置函数int()来返回一个整数
要表示一个浮点数,可把一个小数赋值给变量或用内置函数float()来返回一个浮点数
1 不同数字类型间的混合运算
混合运算时,"较窄"类型的操作数会拓宽到另一个操作数的类型,其中整数比浮点数窄,浮点数比复数窄
如下官网所述,数字类型(复数除外)都支持下列运算
1.1 除法运算 /
如上,除法运算得到的结果类型总是float
1.2 整除运算 //
两个数相除,对于得到的商去除小数部分,再做如下处理,
对于 int 类型之间的操作数结果的类型为 int。 对于存在float 类型的操作,结果的类型为 float,结果总是向负无穷的方向舍入
1.3 求余运算 %
什么是余数,如 7除以2,商为3,余数为1
更专业的表示方法是
z = x // y
余数 m = x - z*y
和数学上的除法一样,第2个数不能为0,否则python会报错
1.4 divmod(x,y)
divmod(x,y)的结果即是(x // y, x % y)
1.5 + - * / 等运算符之间的优先级
如下,从最高优先级(最上)到最低优先级(最下)。 相同单元格内的运算符具有相同优先级
三 复数complex
复数也是数学上的概念,由实数和虚数组成
实数,如正数 负数 小数 无理数等
虚数,与实数相反
x²+1=0在实数范围内就没有解,引入虚数后就有解了
假设x²=-1,定义i=√-1,则i²=-1, i为虚数单位
方程的解就是虚数 x=√-1(i)
形如a+bi(a、b均为实数)的数为复数。复数通常用z表示,即z=a+bi
用z.real 和z.imag分别表示复数的实数和虚数部分
四 Decimal
python中的数字运算,当存在float类型时,结果可能会与数学上的运算结果不一致,如下
其原因没细究,可能如一些网友所言如下
这时候,就该Decimal发挥作用了,如果想要像中小学数学那样十进制的准确运算,就要用到Decimal这个类型
如上,Decimal类型来自内置库decimal,注意,要把数字作为字符串的形式构成成Decimal类型才能准确计算
构造一个Decimal对象如下官网表述
前面讲过的数字间的运算如 + - * / // %等也可用于Decimal类型,但一些运算和int float间的运算有点区别,如下
取余运算 %
在Decimal中取余,结果的符号是 被除数 的符号,而不是除数的符号
整除运算 //
在Decimal中整除,返回真商的整数部分(截断为零)而不是它的向下取整
上下文对象
上下文是算术运算所在的环境。 它们管理精度、设置舍入规则、确定将哪些信号视为异常,并限制指数的范围
可使用 getcontext() 和 setcontext() 函数来读取或修改
decimal.getcontext():返回活动线程的当前上下文
Decimal表示一个数字也是有长度的,我们可以获取 修改它的长度
如上,因为Decimal的长度是可以自定义的,所以,用decimal来计算0.2+0.1比浮点数的结果更加接近准确结果
Decimal与其他数字类型的转换
如上最好转换成str并注意控制精度。转成float,Decimal长度过长的话,Decimal会被截断
标签:数字,python,Decimal,float,int,类型,运算 From: https://www.cnblogs.com/MyRecords/p/17737812.html