2016-11-10 21 views
3

Juliaで浮動小数点数をintに変換する方法はありますか?浮動小数点数を8ビット整数で表される小数部を固定精度の数値に変換しようとしています。これを行うために、私は、数だけ小数部分を切り捨てる必要があり、私はこれを行うための最善の方法は、浮動小数点xからxの変換された整数を減算することであろう考え出し:Julia Langのfloatをintに変換する

x = 1.23455 
y = x - Int(x) 
println(y) 

Y = 0.23455

+2

あなたが提供したコードは動作しません、X 'のように表される整数である 'ない限りのInt(x)は' '不正確ERROR'を返しますので、' 'Float64'、例えば'1.0'または' -44.0'です。また、質問に基づいてあなたが実際に何をしているのか分からない。あなたの言葉は、 'Int8'で表現される' Float64'の小数部分がほしいと思うように聞こえます。これは正しいですか?これは奇妙な要求です。特に、あなたのサンプル番号 '1.23455'の場合、' Int64'の小数部分は '23455'ですが、これは明らかに' Int8'として表現するには大きすぎます。 –

+0

また、丸め関数を使うことができるようです。これらの関数はすべて、変換の対象となる型を受け取ります:http://docs.julialang.org/en/release-0.5/manual/mathematical-operations/#man-rounding-functions – amrods

答えて

3

私はあなたがfloorを探していると思う:

julia> x = 1.23455 
1.23455 

julia> floor(x) 
1.0 

julia> y = x - floor(x) 
0.23455000000000004 
+1

v0.6からは、 floor 'は 'Int64'型ではなく、例として' Float64'です。 'test = ceil(0.2); typeof(テスト) ' – jjjjjj

6

あなたがtruncを探しているということも可能です。それはあなたが小数部分を意味するかによって異なります。これはtruncfloorの差です:

julia> trunc(Int, 1.2) 
1 

julia> trunc(Int, -1.2) 
-1 

julia> floor(Int, 1.2) 
1 

julia> floor(Int, -1.2) 
-2 
関連する問題