Jawaban:
Itu melakukan pembagian integer. Anda dapat membuat salah satu angka Floatdengan menambahkan .0:
9.0 / 5 #=> 1.8
9 / 5.0 #=> 1.8
.to_fjawabannya 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 / 5tidak apa-apa.
Itu melakukan pembagian integer. Anda dapat menggunakan to_funtuk 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#fdivmetode 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 5ke 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; endakan mengembalikan hasil perhitungan dari metode, karena ekspresi terakhir dalam pemanggilan metode adalah nilai kembali.