python第十二章:数据类型之整数/浮点数

发布时间 2023-11-17 08:23:45作者: 刘宏缔的架构森林

一,整数

1,整数类型包括正整数、负整数和零:

1
2
3
4
5
6
num1 = 345     # 正整数
num2 = -88     # 负整数
num3 = 0        # 0
print("num1:", num1)
print("num2:", num2)
print("num3:", num3)

运行结果:

num1: 345
num2: -88
num3: 0

2,整数的不同进制表示:

整数默认是十进制表示,但也可以用二进制/八进制/十六进制表示。
特定的前缀用来指定不同的进制,如下: 
0b 表示二进制,
0o 表示八进制,
0x 表示十六进制

1
2
3
4
5
6
7
8
9
num1 = 37     # 十进制表示37
num2 = 0b100101  # 二进制表示,相当于十进制的 37
num3 = 0o45    # 八进制表示,相当于十进制的 37
num4 = 0x25    # 十六进制表示,相当于十进制的 37
 
print("num1:", num1)    # 输出结果为 37
print("num2:", num2)   # 输出结果为 37
print("num3:", num3)   # 输出结果为 37
print("num4:", num4)   # 输出结果为 37

运行结果:

num1: 37
num2: 37
num3: 37
num4: 37

二,浮点数:

1,浮点数就是小数,

它由整数部分和小数部分组成,两者中间用小数点分隔开来

2,如果浮点数与整数进行混合运算,结果也是浮点数

1
2
3
4
5
num1 = 2
num2 = 3.0
result = num1 + num2
print("result:", result)       # 输出结果为 5.0
print(type(result))  # 输出结果为 <class 'float'>

运行结果:

result: 5.0
<class 'float'>

说明:刘宏缔的架构森林—专注it技术的博客,
网站:https://blog.imgtouch.com
原文: https://blog.imgtouch.com/index.php/2023/11/13/python-di-shi-er-zhang-shu-ju-lei-xing-zhi-zheng-shu-fu-dian-shu/
代码: https://github.com/liuhongdi/ 或 https://gitee.com/liuhongdi
说明:作者:刘宏缔 邮箱: 371125307@qq.com

三,浮点数计算时存在精确性问题

1,产生精度问题的原因:
在Python中,浮点数是用二进制表示的。不幸的是,某些十进制分数无法通过有限数量的二进制位精确地表示。例如,当计算0.1加0.2时,预期结果为0.3,但Python实际上返回了0.30000000000000004。这是因为0.1和0.2都不能精确地表示为二进制小数。

2,需要引入decimal模块,用于高精度的小数计算,
尤其是涉及到货币的时候,不能直接用浮点数来计算

看一个例子:

1
2
3
4
5
num1 = 0.1
num2 = 0.7
result = num1 + num2
print("result:", result)       # 输出结果为 0.7999999999999999
print(type(result))            # 输出结果为 <class 'float'>

运行结果:

result: 0.7999999999999999
<class 'float'>