提问人:Marian Klösler 提问时间:1/19/2023 更新时间:8/8/2023 访问量:506
将 i32 转换为 f32
Convert i32 into f32
问:
如何在 Zig Language 中将 i32 转换为 f32?
我想计算 for 循环中值的出现次数,然后以平滑浮点数的形式获取百分比。
var partial : i32 = 0;
var total : i32 = 2000;
for (arr[0..total]) |value| {
if(value < 200) inCircle = inCircle + 1;
}
const result = partial / total;
答:
3赞
sigod
1/19/2023
#1
锯齿 0.11+
const result = @as(f32, @floatFromInt(partial)) / @as(f32, @floatFromInt(total));
如果您对是否需要使用 @as
感到困惑:请参阅结果位置语义或此答案。
锯齿 0.10
您需要使用@intToFloat
功能。喜欢这个:
const result = @intToFloat(f32, partial) / @intToFloat(f32, total);
评论
0赞
Marian Klösler
1/19/2023
谢谢,这就是我一直在寻找的转换方法。您能提供文档链接吗?
1赞
sigod
1/19/2023
@CitrusPunk 答案是:ziglang.org/documentation/master/#intToFloat
0赞
sigint
9/10/2023
我确实明白明确很重要,但 0.10 => 0.11 的变化感觉......详细。这有设计原理吗?
上一个:Verilog - 负数除法
评论