浮点数:f32 与 f64
处理带小数的数字。
浮点数:f32 与 f64 是 CoddyKit 上的免费 Zig Academy 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Zig Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Zig Academy 课程共包含 4 节课。
带小数的数字
需要小数时,Zig 提供浮点类型。它们可以存储 3.14 这样的分数值,而不只是整数。
f64 是常用选择
f64 类型使用 64 位存储双精度浮点数。当您需要较高精度和较大范围时,它通常是默认选择。
const pi: f64 = 3.14159;f32 以精度换取空间
f32 使用 32 位。它可以节省内存,速度也可能更快,但比 f64 能存储的有效数字更少。
const ratio: f32 = 0.5;Zig 还有更多浮点宽度
除了 f32 和 f64,Zig 还支持 f16 和 f128。您可以选择在精度、内存和速度之间取得平衡的宽度。
浮点字面量需要小数点
浮点字面量包含小数点,例如 2.0。只写 2 会得到整数,这是另一种类型的值。
const half = 0.5;
const one = 1.0;科学计数法同样可用
您可以使用指数来书写非常大或非常小的浮点数。形式 1.5e3 表示 1.5 乘以 10 的三次方,也就是 1500。
const big: f64 = 1.5e3;进行浮点运算
常用运算符同样适用于浮点数。两个浮点数相除时会保留小数部分,而不是将其丢弃。
const result: f64 = 7.0 / 2.0; // 3.5浮点数是近似值
浮点数无法精确存储每一个小数。细微的舍入误差意味着 0.1 加 0.2 可能不严格等于 0.3。
使用容差进行比较
由于存在舍入误差,请避免测试浮点数是否完全相等。应改为检查 difference 是否小于一个很小的阈值。
const close = @abs(a - b) < 0.0001;将整数转换为浮点数
要将整数转换为浮点数,您必须使用 @floatFromInt 明确进行转换。Zig 不会悄悄混用这两种数字类型。
const n: i32 = 10;
const f: f64 = @floatFromInt(n);特殊浮点值
浮点数还可以表示无穷大和非数字值。这些值可能由除以零等运算产生,标准库为它们提供了名称。
快速检查
您用一个浮点数除以另一个浮点数,并希望保留小数结果。关于 Zig 中的浮点运算,下面哪项说法正确?
回顾
一般小数请使用 f64,需要节省空间时使用 f32。请记住,浮点数是近似值,因此应使用容差进行比较,并有意进行类型转换。🎯
用 AI 导师学习 Zig — 免费
在浏览器中编写并运行真实代码,获得全天候 AI 导师的即时帮助,并在网页或应用中继续学习。
- 课程
- 30
- 课程
- 120
常见问题解答
「浮点数:f32 与 f64」课时是免费的吗?
是的 — 「浮点数:f32 与 f64」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Zig Academy 课程的其余内容,请升级到 CoddyKit PRO。 Zig Academy 课程共包含 4 节课。
「浮点数:f32 与 f64」这节课中我会学到什么?
处理带小数的数字。 你通过在浏览器中直接运行的动手代码来练习 Zig Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Zig Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Zig Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。
「浮点数:f32 与 f64」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Zig Academy 课中编写并运行代码吗?
能。每节 Zig Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 定长整数:i32、u8、usize
- 浮点数:f32 与 f64
- bool、void 与 comptime 类型
- 数字字面量与下划线