mengkonversi double untuk bilangan bulat di jawa
Di Jawa, saya ingin mengkonversi ganda untuk integer, aku tahu jika anda melakukan hal ini:
double x = 1.5;
int y = (int)x;
anda mendapatkan y=1. Jika anda melakukan hal ini:
int y = (int)Math.round(x);
Anda'll kemungkinan akan mendapatkan 2. Namun, saya bertanya-tanya: sejak ganda representasi bilangan bulat kadang-kadang terlihat seperti 1.9999999998 atau sesuatu, ada kemungkinan bahwa casting ganda yang dibuat melalui Matematika.round() masih akan mengakibatkan terpotong bawah nomor, bukan bulat nomor yang kita cari (yaitu: 1, bukan 2 dalam kode yang diwakili) ?
(dan ya, aku tidak bermaksud seperti itu: ada ada nilai untuk x, dimana y akan menunjukkan hasil yang terpotong bukan bulat representasi dari x?)
Jika demikian: Apakah ada cara yang lebih baik untuk membuat ganda menjadi bulat int tanpa menjalankan risiko pemotongan?
Menemukan sesuatu: Matematika.round(x) mengembalikan panjang, tidak ganda. Oleh karena itu: itu adalah mustahil untuk Matematika.round() untuk mengembalikan nomor tampak seperti 3.9999998. Oleh karena itu, int(Matematika.round()) tidak akan pernah perlu untuk memotong apa-apa dan akan selalu bekerja.
Tidak,
bulat()
akan selalu bulat double untuk nilai yang benar, dan kemudian, ia akan dilemparkan ke sebuahlama
yang akan memotong setiap tempat desimal. Tapi setelah pembulatan, tidak akan menjadi pecahan bagian yang tersisa.Berikut ini adalah dokumentasi dari
Matematika.round(double)
:Untuk datatype
Double
untukint
, anda dapat menggunakan berikut:Soal tujuan saya.