为什么 Int64 和 Float32 之间的比较会给出意想不到的答案?

awe*_*kie 3 julia

我正在使用 Julia 版本 1.6.2

julia> 2 < 1
false

julia> 2.0f32 < 1.0f32
false

julia> 2 < 1.0f32
true
Run Code Online (Sandbox Code Playgroud)

这是预期的行为吗?我不明白这是怎么回事。

Bog*_*ski 8

原因是它32是指数值,所以你有:

julia> Float32(1)
1.0f0

julia> big(1.0f32)
1.00000003318135351409612647563264e+32
Run Code Online (Sandbox Code Playgroud)

因此:

julia> 1 == 1.0f32
false

julia> 1 == 1.0f0
true
Run Code Online (Sandbox Code Playgroud)