CC++ & Algorithm

Python小数类型 float

简单6
语言版本:C++Python
概述:小数类型用于表示像3.14、0.5这样的带小数点的数,适合精确测量。

认识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.140.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(保留两位小数)

五、常见错误

  1. 忘记写小数点5 / 2结果是2.5(float),但5 // 2结果是2(int)。如果本意是想得到小数,一定记得让其中一个数变成小数,比如5.0 // 25 // 2.0

  2. 误以为小数精确:把0.1加十次不等于1,会有微小误差。不要用==比较两个float是否相等,而是用abs(a - b) < 0.0001这种方法。

  3. 把整数和小数混在一起比较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}"保留两位小数

例题精讲

1单选题

以下哪个选项是Python中合法的float类型值?

A123
B"3.14"
C0.5
DTrue
2单选题

执行以下代码,输出结果是什么? print(type(2.0))

A<class 'int'>
B<class 'float'>
C<class 'str'>
D<class 'number'>
3判断题

在Python中,小数类型float可以精确表示所有十进制小数,例如0.1。

4填空题
请补充代码,使变量x的值为3.14(float类型),并输出。
x = ___
print(x)
5填空题
以下代码计算一个float与int的加法,请补充完整,使输出结果为6.0。
a = 4.5
b = 1.5
result = a ___ b
print(result)