Python小数类型 float
简单6认识Python中的小数:float类型
除了整数,我们经常需要表示小数,比如温度36.5°C、身高1.60米。在Python中,小数叫做 float 类型(浮点数)。它同样支持加减乘除等运算。
例如:
price = 9.99 # 单价(元)
weight = 2.5 # 重量(千克)
total = price * weight # 计算总价
print(total) # 输出 24.975
注意:小数点后面可以有很多位,但有时计算机不能完全精确表示所有小数(比如0.1加0.2可能会有一点小误差),不过大部分日常计算没问题。
生活中的例子:你喝一杯牛奶,牛奶瓶有0.5升;你跑步跑了1.23公里。这些都是小数。
重要区别:整数和小数完全不同!整数运算结果还是整数(有特殊规则),小数运算结果总是小数。比如 5 // 2 是2(整数),而 5.0 / 2.0 是2.5(小数)。一定要搞清楚什么时候用哪种类型哦。
一、什么是float类型?
Python中的float(浮点数)就是用来存储带小数点的数字的。它用一个小数点把整数部分和小数部分分开,比如3.14、0.5、–2.7。你也可以直接写3.0,虽然它等于整数3,但类型是小数。
创建float的方法:
- 直接写小数:
score = 95.5# 考试成绩 - 整数后面加小数点:
age = 12.0# 虽然年龄通常是整数,但加上小数点就变成小数 - 用科学计数法(很少用):
lightspeed = 3e8# 相当于3.0 × 10⁸,也是小数
二、float的运算
float支持所有数学运算:加+、减-、乘*、除/、整除//、取余%、乘方**。注意:只要有小数参与,结果通常也是小数。
a = 10.5 # 小数a
b = 3.0 # 小数b(等于整数3但类型是float)
print(a + b) # 加法:13.5
print(a - b) # 减法:7.5
print(a * b) # 乘法:31.5
print(a / b) # 除法:3.5
print(a // b) # 整除:3.0(注意!结果是小数3.0,不是整数3)
print(a % b) # 取余:1.5
print(a ** 2) # 乘方:110.25
特别提醒:只要两个数中有一个是float,结果就是float。即使整除//,结果虽然看起来像整数(比如3.0),但类型还是float。
三、float的精度——一个小坑
计算机内部用二进制存储小数,而有些十进制小数(比如0.1)无法用二进制精确表示,所以会出现极小误差。
print(0.1 + 0.2) # 你可能以为输出0.3,实际输出0.30000000000000004
这种误差在大多数日常计算中可以忽略(比如算钱时保留两位小数)。如果需要精确计算(比如银行利息),Python有专门的decimal模块,不过那是进阶内容。
四、整数和小数互相转换
- 整数 → 小数:用
float()函数 - 小数 → 整数:用
int()函数(会直接砍掉小数部分,不四舍五入!)
num_int = 7 # 整数
num_float = float(num_int) # 变成7.0
print(num_float) # 7.0
price = 9.99 # 小数
price_int = int(price) # 变成9(砍掉.99)
print(price_int) # 9
⚠️ 注意:用int()转小数时,是向零取整:正数直接舍去小数部分,负数也一样。比如int(-2.7)结果是–2(而不是–3)。如果希望四舍五入,用round()函数。
round(3.1415) # 3(四舍五入到整数)
round(3.1415, 2) # 3.14(保留两位小数)
五、常见错误
-
忘记写小数点:
5 / 2结果是2.5(float),但5 // 2结果是2(int)。如果本意是想得到小数,一定记得让其中一个数变成小数,比如5.0 // 2或5 // 2.0。 -
误以为小数精确:把0.1加十次不等于1,会有微小误差。不要用
==比较两个float是否相等,而是用abs(a - b) < 0.0001这种方法。 -
把整数和小数混在一起比较:
3 == 3.0返回True,因为Python会自动把整数转成小数比较。但类型不同,type(3)是<class 'int'>,type(3.0)是<class 'float'>。
六、完整示例:计算每天零花钱和存款
小明每天有15.5元零花钱,他每天花掉8.3元买零食,想存下剩下的钱。一个月30天后,他存了多少钱?
daily_money = 15.5 # 每天零花钱(元)
daily_cost = 8.3 # 每天花费(元)
daily_save = daily_money - daily_cost # 每天存下的钱
days = 30 # 一个月天数(整数)
total_save = daily_save * days # 总存款
print("每天存:", daily_save, "元")
print("一个月存:", total_save, "元")
运行结果:
每天存: 7.2 元
一个月存: 216.0 元
注意:total_save是小数216.0,因为daily_save是小数,乘整数还是小数。
七、动手试试
- 写一个程序,计算你一分钟心跳次数(假设心率是每分钟72.5次),然后运行5分钟,一共跳了多少次?
- 输入一个整数,用
float()转成小数后输出;输入一个小数,用int()砍掉小数部分后输出。
相关知识点
掌握了float类型,你可以进一步学习:
- 整数类型int:和float配合使用,理解运算规则差异
type()函数:检查变量的数据类型input()输入:输入数字时记得用float()或int()转换- 四舍五入
round():控制小数位数 - 格式化输出:比如
f"{price:.2f}"保留两位小数
例题精讲
以下哪个选项是Python中合法的float类型值?
执行以下代码,输出结果是什么? print(type(2.0))
在Python中,小数类型float可以精确表示所有十进制小数,例如0.1。
请补充代码,使变量x的值为3.14(float类型),并输出。
x = ___
print(x)以下代码计算一个float与int的加法,请补充完整,使输出结果为6.0。
a = 4.5
b = 1.5
result = a ___ b
print(result)