Sepertinya saya tidak dapat menemukan jawaban yang saya cari mengenai pertanyaan sederhana: bagaimana cara mengumpulkan angka ke yang terdekat int
?
Misalnya, setiap kali angkanya 0,2, 0,7, 0,2222, 0,4324, 0,99999 saya ingin hasilnya menjadi 1.
Sejauh ini saya punya
int b = (int) Math.ceil(a / 100);
Tampaknya tidak melakukan pekerjaan itu.
a
memiliki tipe integer.Jawaban:
Math.ceil()
adalah fungsi yang benar untuk dipanggil. Saya mendugaa
adalahint
, yang akan membuata / 100
melakukan bilangan aritmatika. CobaMath.ceil(a / 100.0)
saja.Output:
Lihat http://ideone.com/yhT0l
sumber
a
adalahint
dalam contoh ini, dan berfungsi seperti yang disarankan. Ketika melakukanint / float
hasilnya adalahfloat
, seperti yang ditunjukkan dalam output. Coba tautannya.Saya tidak tahu mengapa Anda membagi 100 tetapi di sini asumsi saya
int a;
atau
sumber
Ini sepertinya melakukan pekerjaan yang sempurna. Bekerja setiap saat.
sumber
10 tahun kemudian, tetapi masalah itu masih menyita perhatian saya.
Jadi ini adalah jawaban untuk mereka yang terlambat seperti saya.
Ini tidak bekerja
Penyebab hasilnya
a / 100
ternyata bilangan bulat dan bulat sehingga Math.ceil tidak bisa berbuat apa-apa.Anda harus menghindari operasi bulat dengan ini
Sekarang berhasil.
sumber
Cara termudah untuk melakukan ini adalah hanya: Anda akan menerima pelampung atau dobel dan ingin itu dikonversi ke putaran terdekat kemudian lakukan saja
System.out.println((int)Math.ceil(yourfloat));
itu akan bekerja dengan sempurnasumber
Dengan asumsi dua kali lipat dan kita perlu angka bulat tanpa tempat desimal. Gunakan fungsi Math.round ().
Ini berjalan sebagai solusi saya.
sumber