JJT*_*JTO 11 floating-point int julia
有没有办法在Julia中将浮点数转换为int?我正在尝试将浮点数转换为固定的精度数,小数部分表示为8位整数.为了做到这一点,我需要截断数字的小数部分,我认为最好的方法是从浮点x中减去x的转换整数:
x = 1.23455
y = x - Int(x)
println(y)
Run Code Online (Sandbox Code Playgroud)
y = 0.23455
Fen*_*ang 19
您可能正在寻找trunc.这取决于小数部分的含义.这之间的区别trunc和floor:
julia> trunc(Int, 1.2)
1
julia> trunc(Int, -1.2)
-1
julia> floor(Int, 1.2)
1
julia> floor(Int, -1.2)
-2
Run Code Online (Sandbox Code Playgroud)
Dav*_*ers 14
我认为您正在寻找floor:
julia> x = 1.23455
1.23455
julia> floor(x)
1.0
julia> y = x - floor(x)
0.23455000000000004
Run Code Online (Sandbox Code Playgroud)
要回答标题中的一般问题(将 Float 转换为 Int),我们可以这样做:
round(Int, 1.3)
# 1
round(Int, 1.7)
# 2
Run Code Online (Sandbox Code Playgroud)
结合之前的答案:
julia> int(x) = floor(Int, x)
int (generic function with 1 method)
julia> int(3.14)
3
julia> int(3.94)
3
Run Code Online (Sandbox Code Playgroud)