Jawaban:
Itu melakukan pembagian integer. Anda dapat membuat salah satu angka Float
dengan menambahkan .0
:
9.0 / 5 #=> 1.8
9 / 5.0 #=> 1.8
.to_f
jawabannya adalah lebih baik jika Anda membagi dua variabel yang berisi bilangan bulat, misalnya a.to_f / b
. Jika Anda benar-benar membagi dua integer hard-coded (yang mungkin aneh), maka menggunakan 9.0 / 5
tidak apa-apa.
Itu melakukan pembagian integer. Anda dapat menggunakan to_f
untuk memaksa sesuatu ke mode floating-point:
9.to_f / 5 #=> 1.8
9 / 5.to_f #=> 1.8
Ini juga berfungsi jika nilai Anda adalah variabel, bukan literal. Mengubah satu nilai ke float sudah cukup untuk memaksa seluruh ekspresi ke aritmatika floating point.
Ada juga Numeric#fdiv
metode yang bisa Anda gunakan sebagai gantinya:
9.fdiv(5) #=> 1.8
Anda bisa memasukkan ruby mathn
modul .
require 'mathn'
Dengan cara ini, Anda akan dapat membuat pembagian secara normal.
1/2 #=> (1/2)
(1/2) ** 3 #=> (1/8)
1/3*3 #=> 1
Math.sin(1/2) #=> 0.479425538604203
Dengan cara ini, Anda mendapatkan pembagian yang tepat (kelas Rasional) hingga Anda memutuskan untuk menerapkan operasi yang tidak dapat dinyatakan sebagai rasional, misalnya Math.sin
.
Ubah 5
ke 5.0
. Anda mendapatkan pembagian bilangan bulat.
Fixnum # to_r tidak disebutkan di sini, diperkenalkan sejak ruby 1.9. Ini mengubah Fixnum menjadi bentuk rasional. Di bawah ini adalah contoh penggunaannya. Ini juga dapat memberikan pembagian yang tepat selama semua angka yang digunakan adalah Fixnum.
a = 1.to_r #=> (1/1)
a = 10.to_r #=> (10/1)
a = a / 3 #=> (10/3)
a = a * 3 #=> (10/1)
a.to_f #=> 10.0
Contoh di mana float dioperasikan pada bilangan rasional menutupi hasil ke float.
a = 5.to_r #=> (5/1)
a = a * 5.0 #=> 25.0
def method; a - b/8; end
akan mengembalikan hasil perhitungan dari metode, karena ekspresi terakhir dalam pemanggilan metode adalah nilai kembali.