python第十二章:数据类型之整数/浮点数
一,整数
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'>